zoukankan      html  css  js  c++  java
  • 数组按照多个字段排序

      $array1 = array(
                    0=>array('id'=>8,'name'=>'Apple','age'=> 18),
                    1=>array('id'=>8,'name'=>'Bed','age'=>17),
                    2=>array('id'=>5,'name'=>'Cos','age'=>16),
                    3=>array('id'=>5,'name'=>'Cos','age'=>14)
        );
        function sortArrByManyField(){
            $args = func_get_args();
            if(empty($args)){
                return null;
            }
            $arr = array_shift($args);
            if(!is_array($arr)){
                throw new Exception("第一个参数不为数组");
            }
            foreach($args as $key => $field){
                if(is_string($field)){
                    $temp = array();
                    foreach($arr as $index=> $val){
                        $temp[$index] = $val[$field];
                    }
                    $args[$key] = $temp;
                }
            }
            $args[] = &$arr;//引用值
            call_user_func_array('array_multisort',$args);
            return array_pop($args);
        }
        $arr = sortArrByManyField($array1,'id',SORT_ASC,'name',SORT_ASC,'age',SORT_DESC);

    实现多维数组的排序,会使用到array_multisort()函数,请深入理解该函数的机制。

  • 相关阅读:
    Swift-基础语法之变量&常量&元组
    Swift
    安装MySQL
    LNMP 简介
    LNMP
    Django 定义数据模型
    Django 添加应用
    Django 创建第一个项目
    Django 安装
    Django 简介
  • 原文地址:https://www.cnblogs.com/liujiaq/p/6723604.html
Copyright © 2011-2022 走看看