PHP头条
热点:

让array_column()函数兼容低版本PHP


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
)

www.phpzy.comtrue/php/2543.htmlTechArticle让array_column()函数兼容低版本PHP array_column()是一个非常有用的php数据函数,主要用于取得二维数组的某一列的值的集合然后组成一个新的一位数组,不过该函数仅支持php 5.5以上的版本,...

相关文章

相关频道:

PHP之友评论

今天推荐