zoukankan      html  css  js  c++  java
  • PHP实现同array_column一样的功能

    不用PHP自带的array_column函数实现同样的功能

    <?php
    /**
     * Created by PhpStorm.
     * User: 123456
     * Date: 2018/9/25
     * Time: 19:39
     */
    
    $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',
        )
    );
    
    p(array_column2($records,null,'id'));
    
    /**
     * 模仿array_column函数1
     * @param $arr
     * @param $column
     * @param NULL $index_key
     */
    function array_column2($arr,$column,$index_key=NULL){
        if ($column && !$index_key){
            foreach ($arr as $key=>$val){
                $data[] = $val[$column];
            }
        }
        if ($index_key){
            foreach ($arr as $key=>$val){
                $data[$val[$index_key]] = $column ? $val[$column] : $val;
            }
        }
        return $data;
    }
    
    
    p(array_column3($records,null,'id'));
    
    /**
     * 模仿array_column函数2
     * @param $arr
     * @param $column_key
     * @param null $index_key
     */
    function array_column3($arr,$column_key,$index_key=null){
        $data = array_map(function($d) use ($column_key,$index_key){
    //        p($d);
            if ($column_key && ! $index_key){
                return $d[$column_key];
            }
            if ($index_key){
                return [$d[$index_key]=>($column_key === null) ? $d : $d[$column_key]];
            }
    
        },$arr);
        $tmp=[];
        if ($index_key){
            foreach ($data as $key=>$val){
                $tmp[key($val)] = current($val);
            }
            $data = $tmp;
        }
        return $data;
    }
    
    function p($data){
        echo '<pre>';
        print_r($data);
        echo '</pre>';
    }
  • 相关阅读:
    DIV 设置垂直居中
    JavaScript--什么是函数
    JavaScript--引用JS外部文件
    JavaScript--如何插入JS
    CSS-类和ID选择器的区别
    CSS-ID选择器
    CSS类选择器
    CSS样式介绍
    HTML--使用mailto在网页中链接Email地址
    HTML--form表单中的label标签
  • 原文地址:https://www.cnblogs.com/phproom/p/9708502.html
Copyright © 2011-2022 走看看