今天给大家推荐两个函数

今天给大家推荐两个函数

(一)数组分组函数

    /**
     *数组分组函数
     *
     *@param  Array $arr 需要分组的数组
     *@param String $key 按照这个键对应的值来分组(可能用词不好,不过跑一波就知道了)
     *@return Array
     */
    public  function array_group_by($arr, $key)
    {
        $grouped = [];
        foreach ($arr as $value) {
            $grouped[$value[$key]][] = $value;
        }
        if (func_num_args() > 2) {
            $args = func_get_args();
            foreach ($grouped as $key => $value) {
                $parms = array_merge([$value], array_slice($args, 2, func_num_args()));
                $grouped[$key] = call_user_func_array('array_group_by', $parms);
            }
        }
        return $grouped;
    }

(二)返回数组当中的多列哦~实用推荐

    /**
     * 返回数组中指定多列
     *
     * @param  Array  $input       需要取出数组列的多维数组
     * @param  String $column_keys 要取出的列名,逗号分隔,如不传则返回所有列
     * @param  String $index_key   作为返回数组的索引的列
     * @return Array
     */
    public function array_columns($input, $column_keys=null, $index_key=null){
        $result = array();

        $keys =isset($column_keys)? explode(',', $column_keys) : array();

        if($input){
            foreach($input as $k=>$v){

                // 指定返回列
                if($keys){
                    $tmp = array();
                    foreach($keys as $key){
                        $tmp[$key] = $v[$key];
                    }
                }else{
                    $tmp = $v;
                }

                // 指定索引列
                if(isset($index_key)){
                    $result[$v[$index_key]] = $tmp;
                }else{
                    $result[] = $tmp;
                }

            }
        }

        return $result;
    }

(三)二维数组按照摸个字段排序

    /** 
     * 对二维数组进行排序 
     * @param $array 
     * @param $keyid 排序的键值 
     * @param $order 排序方式 'asc':升序 'desc':降序 
     * @param $type  键值类型 'number':数字 'string':字符串 
     */  
    public function sort_array(&$array, $keyid, $order = 'asc', $type = 'number') {  
        if (is_array($array)) {  
            foreach ($array as $val) {  
                $order_arr[] = $val[$keyid];  
            }  
            $order = ($order == 'asc') ? SORT_ASC : SORT_DESC;  
            $type = ($type == 'number') ? SORT_NUMERIC : SORT_STRING;  
            array_multisort($order_arr, $order, $type, $array);  
        }  
    }  

2.具体的实现的效果 就给小伙伴们自己去实践吧~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值