demo

Excel::load($filePath, function ($reader) {
    $reader = $reader->getSheet(7);//获取excel的第1张表
    $results = $reader->toArray();//获取表中的数据
    vpd($results);
});

$excel = Excel::load($filePath);
$reader = $excel->getSheet(7);//获取excel的第1张表
$results = $reader->toArray();//获取表中的数据
vpd($results);

 

$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 没有成功。

 

默认排序时间排序

3个回答

答案对人有帮助,有参考价值1答案没帮助,是错误的答案,答非所问


已采纳

$array = [你的数组]
$newArray = array_reduce($array,function(&$newArray,$v){
    $newArray[$v['univs_id']] = $v;
    return $newArray;
});

$newArray就是你要的数组

满月微光572 声望

答案对人有帮助,有参考价值4答案没帮助,是错误的答案,答非所问

$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)
        );
    }
}

bandit1.1k 声望

答案对人有帮助,有参考价值0答案没帮助,是错误的答案,答非所问

php中不能直接改变数组的键名,需要添加新项然后删掉旧项。

$arr[$newkey] = $arr[$oldkey];
unset($arr[$oldkey]);
  1. $array = array(  
  2.     array('id'=>'3','name'=>'tom'),  
  3.     array('id'=>'5','name'=>'jerry'),  
  4.     array('id'=>'24','name'=>'spike')  
  5. );  
  6.   
  7. $newArray1 = array_column($array,NULL,'id');  
  8. var_dump($newArray1);  
  9. //结果  
  10. array(  
  11.     '3'=>array('id'=>'3','name'=>'tom'),  
  12.     '5'=>array('id'=>'5','name'=>'jerry'),  
  13.     '24'=>array('id'=>'24','name'=>'spike')  
  14. )  
  15.   
  16. $newArray2 = array_column($array,NULL,'name');  
  17. var_dump($newArray2);  
  18. //结果  
  19. array(  
  20.     'tom'=>array('id'=>'3','name'=>'tom'),  
  21.     'jerry'=>array('id'=>'5','name'=>'jerry'),  
  22.     'spike'=>array('id'=>'24','name'=>'spike')  
  23. )  

转载于:https://my.oschina.net/k9606/blog/1825950

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值