/**
* 重置指定数组的索引为元素中的指定值, 一般用于将数据库查询获取的多条记录的数字索引改为记录主键格式
* @param array $dataArray
* @param string $newIndexSource
* 必须位于第二维, 如果是多个作为组合索引, 则传入数组即可, 如: array('id', 'type')
* @param string $delimiter
* @param bool $unsetIndexKey
* @return array
*/
public function resetArrayIndex( $dataArray, $newIndexSource, $delimiter = ':', $unsetIndexKey = false ){
$resultArray = array();
foreach( $dataArray as $k=>$v ) {
// string格式的单key索引, 则直接赋值, 继续下一个
if( is_string( $newIndexSource ) ) {
$resultArray[$v[$newIndexSource]] = $v;
if( $unsetIndexKey )
unset( $v[$newIndexSource] );
continue;
}
// 数组格式多key组合索引处理
$k = '';
foreach( $newIndexSource as $index ) {
$k .= "{$v[$index]}{$delimiter}";
if( $unsetIndexKey )
unset( $v[$index] );
}
$k = rtrim( $k, $delimiter );
$resultArray[$k] = $v;
}
return $resultArray;
}
组合索引
最新推荐文章于 2024-03-05 16:38:04 发布