• array_column 函数, 以及在PHP5.5之下的替代方法


    array_column 函数, 是能够根据多维数组中共有的一个键值来提取多维数组中属于这个键的值

    例如下面的数组:

    $test = array(
        0 => array(
         'id' => 11, 'name'=>'zhangsan' ), 1 => array(
         'id' => 22, 'name'=> 'lisi' ), 2 => array(
         'id' => 33, 'name'=> 'wangmazi' ), 3 => array(
         'id' => 44, 'name'=> 'zhaoliu' ) );

    要把他们提取到一个数组中, 那么就可以array_column()函数;

    $newNameArray = array_column($test, "name");

    打印结果:

    如果要指定键值, 则

    $newNameArray = array_column($test, "name", "id");//$test 操作的数组; 第一name 是 提取某个列的值; 第二个id表示用id来作为值得键

    打印结果:

    方便好用, 但是只能在php5.5以上, 而且如果第二个参数  column_name  为 数字, 将返回空.

    下面的自定义函数很好的解决了这个问题:

    /**
     * array_column() // 不支持低版本;
     * 以下方法兼容PHP低版本
     */
    function _array_column(array $array, $column_key, $index_key=null){
        $result = [];
        foreach($array as $arr) {
            if(!is_array($arr)) continue;
    
            if(is_null($column_key)){
                $value = $arr;
            }else{
                $value = $arr[$column_key];
            }
    
            if(!is_null($index_key)){
                $key = $arr[$index_key];
                $result[$key] = $value;
            }else{
                $result[] = $value;
            }
        }
        return $result; 
    }

    参数与array_column() 相同, 用法也相同, 支持任何索引形式.

    转载:https://www.cnblogs.com/Zell-Dinch/articles/4580690.html

  • 相关阅读:
    面试笔试题目集
    [vs2010]:fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?
    [数据库] SQLite常见问题解答
    安卓学习资料总结39
    Android 学习资料总结40
    python变量的定义和使用
    python运算符
    python的注释
    print输出函数
    python数据类型转换
  • 原文地址:https://www.cnblogs.com/lxwphp/p/10597476.html
Copyright © 2020-2023  润新知