zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    vue简单分屏(1,4,9,16),全屏,还需要调整
    vue 中的Vuex实践
    常用工具类
    java Log日志规范
    spring中对象的注入方式
    不恰当的update语句使用主键和索引导致mysql死锁
    JPA规范及其它持久层框架
    webservice基本功能介绍
    Activiti工作流(二)之常用操作
    Activiti工作流(一)之基本操作介绍
  • 原文地址:https://www.cnblogs.com/lxwphp/p/10597476.html
Copyright © 2011-2022 走看看