PHP 获取二维数组中某个key的集合

来源:互联网 发布:新代系统编程方法 编辑:程序博客网 时间:2024/05/21 08:52

对于二维数组的操作问题,一般的做法是直接foreach,一个个的往一个数组变量里塞进行赋值,这种非常常见的做法,但这样的写法很影响性能,因为使用 PHP 原生的函数肯定比循环效率高。下面介绍如何使用原生的函数实现此需求。

事例数组

$arr = array(      0 => array(          'id'    => 11,          'name'  => 'username1',          'code' => '123456789',      ),      1 => array(          'id'    => 22,          'name'  => 'username2',          'code' => '123456789',    ),      2 => array(          'id'    => 33,          'name'  => 'username3',          'code' => '123456789',    ) );

1)获取索引”id”的集合,并且保存为 array(11,22,33)

原始写法:

foreach ($arr as $key => $value){    $list[] = $value['id'];}

优化后:

$list = array();  $list = array_map('array_shift', $arr);  //php 版本要求,(PHP 5 >= 5.5.0)$list = array();  $list = array_column($arr), 'id');  

2)获取索引”name”的集合,并且保存为 array(‘username1’,’username2’,’username3’)

原始写法:

foreach ($arr as $key => $value){    $list[] = $value['name'];}

优化后:

$list = array();  $list = array_reduce($arr, create_function('$v,$w', '$v[$w["id"]]=$w["name"];return $v;'));  

打印结果:

array(      11 => 'username1',      22 => 'username2',      33 => 'username3',  );
原创粉丝点击