欢迎光临
我们一直在努力

让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
)

赞(0) 打赏
未经允许不得转载:码农资源网 » 让array_column()函数兼容低版本PHP
分享到

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册