«

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

时间:2024-2-15 15:07     作者:韩俊     分类: 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
)

标签: php php教程

热门推荐