Sep
24
2016
让array_column()函数兼容低版本PHP
作者:
绝缘体.. 发布:
2016-09-24 12:50 分类:
未分类 阅读:
抢沙发
array_column()是一个非常有用的php数据函数,主要用于取得二维数组的某一列的值的集合然后组成一个新的一位数组,不过该函数仅支持php 5.5以上的版本,因此这里给出一个对于低于5.5版本的实现方式。
if(!function_exists('array_column')){
function array_column($arr,$key){
return array_map(function($val) use ($key){
return $val[$key];
},$arr);
}
}
或者:
if(!function_exists('array_column')){
function array_column($input,$column_key,$index_key=null){
$arr=array_map(function($d) use ($column_key,$index_key){
if(!isset($d[$column_key])){
return null;
}
if($index_key!==null){
return array($d[$index_key]=>$d[$column_key]);
}
return $d[$column_key];
},$input);
if($index_key!==null){
$tmp=array();
foreach ($arr as $ar){
$tmp[key($ar)]=current($ar);
}
$arr=$tmp;
}
return $arr;
}
}
示例:
<?php $records = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ), array( 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ), array( 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', ) ); $first_names = array_column($records, 'first_name'); print_r($first_names);
以上例程会输出:
Array
(
[0] => John
[1] => Sally
[2] => Jane
[3] => Peter
)
微信扫一扫,打赏作者吧~