1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <code> $array = array (
0 => array (
'univs_id' => 1001,
'univs_name' => '清华大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
1 => array (
'univs_id' => 1002,
'univs_name' => '北京大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
2 => array (
'univs_id' => 1003,
'univs_name' => '中国人民大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
);</code>
|
登录后复制
登录后复制
这样类型的数组,如果不使用foreach进行遍历如何能达到下面的效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <code> $array = array (
1001 => array (
'univs_id' => 1001,
'univs_name' => '清华大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
1002 => array (
'univs_id' => 1002,
'univs_name' => '北京大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
1003 => array (
'univs_id' => 1003,
'univs_name' => '中国人民大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
);</code>
|
登录后复制
登录后复制
试了array_map 没有成功。
回复内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <code> $array = array (
0 => array (
'univs_id' => 1001,
'univs_name' => '清华大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
1 => array (
'univs_id' => 1002,
'univs_name' => '北京大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
2 => array (
'univs_id' => 1003,
'univs_name' => '中国人民大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
);</code>
|
登录后复制
登录后复制
这样类型的数组,如果不使用foreach进行遍历如何能达到下面的效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <code> $array = array (
1001 => array (
'univs_id' => 1001,
'univs_name' => '清华大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
1002 => array (
'univs_id' => 1002,
'univs_name' => '北京大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
1003 => array (
'univs_id' => 1003,
'univs_name' => '中国人民大学' ,
'province_id' => 110000,
'province' => '北京' ,
),
);</code>
|
登录后复制
登录后复制
试了array_map 没有成功。
1 2 3 4 5 6 | <code> $array = [你的数组]
$newArray = array_reduce ( $array , function (& $newArray , $v ){
$newArray [ $v [ 'univs_id' ]] = $v ;
return $newArray ;
});
</code>
|
登录后复制
$newArray就是你要的数组
$new_array = array_combine(array_column($array,'univs_id'),$array);
array_column在php5.5以上才能使用
低版本array_column实现
1 2 3 4 5 6 7 8 9 10 | <code> if (!function_exists( 'array_column' )){
function array_column( $array , $key ){
return array_map (
function ( $element , $key ){ return $element [ $key ];},
$array ,
array_fill (0, count ( $array ), $key )
);
}
}</code>
|
登录后复制
php中不能直接改变数组的键名,需要添加新项然后删掉旧项。
1 2 | <code> $arr [ $newkey ] = $arr [ $oldkey ];
unset( $arr [ $oldkey ]);</code>
|
登录后复制