有如下数组,我们的需求是提取数组中的name列组成新数组。
$users = array( '0' => array('id' => 1, 'name' => 'name1'), '1' => array('id' => 2, 'name' => 'name2'), '2' => array('id' => 3, 'name' => 'name3'), '3' => array('id' => 4, 'name' => 'name4'), '4' => array('id' => 5, 'name' => 'name5'), ); //需要得到的结果: $names = array('name1', 'name2', 'name3', 'name4', 'name5');
方法1:使用array_column()
array_column()是PHP在5.5.0版本之后新添加的一个专用函数,用于返回数组中指定的一列(本方法只能使用在php5.5以上版本)。
使用方法:
$names = array_column($users 'name');
方法2:使用array_walk()
array_walk()函数使用用户自定义函数对数组中的每个元素做回调处理
使用方法:
$names = array(); array_walk($users, function($value, $key) use (&$names ){ $names[] = $value['name']; });
方法3:使用array_map()
array_map()为数组的每个元素应用回调函数,array_map与array_walk的使用方法基本相同
使用方法:
$names = array(); array_map(function($value) use (&$names){ $names[] = $value['name']; }, $users);
方法4:使用foreach循环遍历
foreach相对上述三种方法执行效率稍低
使用方法:
$names = array(); foreach ($users as $value) { $names[] = $value['name']; }
未经允许不得转载:吾爱主机之家 » PHP获取数组中的指定列为新数组的方法