php二位数组排序

介绍一个比较好用的二位数组的多个字段的排序的方法。

public function sortByCols($list, $field)
    {
        $sort_arr=array();
        $sort_rule='';
        foreach($field as $sort_field=>$sort_way){
            foreach($list as $key=>$val){
                $sort_arr[$sort_field][$key]=$val[$sort_field];
            }
            $sort_rule .= '$sort_arr["' . $sort_field . '"],'.$sort_way.',';
        }
        if(empty($sort_arr)||empty($sort_rule)){ return $list; }
        eval('array_multisort('.$sort_rule.' $list);');//array_multisort($sort_arr['parent'], 4, $sort_arr['value'], 3, $list);
        return $list;
    }

$hand = [['id' => 1, 'age' => 1, 'num' => 2], ['id' => 1, 'age' => 1, 'num' => 2], ['id' => 1, 'age' => 1, 'num' => 2]];

$hand = $this->sortByCols($hand, array('age' => SORT_ASC, 'num' => SORT_ASC, 'id' => SORT_DESC));

具体的效果就不说了,直接撸代码试试就知道了。
这个方法不是最近使用的,整理之前的代码的时候发现的,不知道太懒了,没有记录下来

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 初级排序算法 排序算法关注的主要是重新排列数组元素,其中每个元素都有一个主键。排序算法是将所有元素主键按某种方...
    深度沉迷学习阅读 5,319评论 0 1
  • 通过前面的知识,我们已经知道,有序的数据在查找时有极大的性能提升。很多查找都基于有序数据,但并不是所有的结构都能像...
    大大纸飞机阅读 4,884评论 0 1
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,794评论 1 32
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,734评论 0 15
  • 优胜七彩七班 [班班有读&创意读写](第283天) 《一棵树的脚步》第7天 2016年的9月,66位无比可爱...
    和语晴爸爸阅读 4,227评论 0 0