$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' => '北京', ),);
這樣類型的數組,如果不使用foreach進行遍曆如何能達到下面的效果
$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' => '北京', ),);
試了array_map 沒有成功。
回複內容:
$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' => '北京', ),);
這樣類型的數組,如果不使用foreach進行遍曆如何能達到下面的效果
$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' => '北京', ),);
試了array_map 沒有成功。
$array = [你的數組]$newArray = array_reduce($array,function(&$newArray,$v){ $newArray[$v['univs_id']] = $v; return $newArray;});
$newArray就是你要的數組
$new_array = array_combine(array_column($array,'univs_id'),$array);
array_column在php5.5以上才能使用
低版本array_column實現
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) ); }}
php中不能直接改變數組的鍵名,需要添加新項然後刪掉舊項。
$arr[$newkey] = $arr[$oldkey];unset($arr[$oldkey]);