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()函数,请深入理解该函数的机制。

  • 相关阅读:
    学习Python第五天
    学习Python第三天
    Mongodb
    JMS links
    笔记整理
    a* products
    String
    business knowledge
    [Java coding] leetcode notes
    [Java Basics3] XML, Unit testing
  • 原文地址:https://www.cnblogs.com/liujiaq/p/6723604.html
Copyright © 2011-2022 走看看