zoukankan      html  css  js  c++  java
  • PHP 二维数组根据某个字段按指定排序方式排序

    /**
     * 二维数组根据某个字段按指定排序方式排序
     * @param $arr array 二维数组
     * @param $field string 指定字段
     * @param int $sort_order string SORT_ASC 按照上升顺序排序, SORT_DESC 按照下降顺序排序(具体请参考array_multisort官方定义)
     * @param int $sort_flags string 排序类型标志(具体请参考array_multisort官方定义)
     * @return mixed
     *
     * demo
     * // 定义数组
     * $arr = [['name'=>'bbb'], ['name'=>'aaa'], ['name'=>'Ccc']];
     * // 需要按照name字段字符串升序排序
     * $arr = arraySort($arr, 'name', SORT_ASC, SORT_STRING);
     * // 需要按照name字段字符串升序排序,但忽略大小写
     * $arr = arraySort($arr, 'name', SORT_ASC, SORT_FLAG_CASE | SORT_STRING);
     */
    function multiArraySort($arr, $field, $sort_order = SORT_ASC, $sort_flags = SORT_REGULAR)
    {
        // 异常判断
        if (!$arr || !is_array($arr) || !$field) {
            return $arr;
        }
    
        // 将指定字段的值存进数组
        $tmp = [];
        foreach ($arr as $k => $v) {
            $tmp[$k] = $v[$field];
        }
        if (!$tmp) {
            return $arr;
        }
    
        // 调用php内置array_multisort函数
        array_multisort($tmp, $sort_order, $sort_flags, $arr);
        return $arr;
    }
  • 相关阅读:
    学习——HTML5
    XML解析——SAX解析以及更方便的解析工具(JDOM、DOM4J)
    C#笔记 -----扩展方法
    Socket实现异步通信
    基础套接字的C#网络编程
    线程
    sqlserver 索引
    SQL Server用户自定义函数
    sqlserver函数
    用户控件和自定义控件的区别
  • 原文地址:https://www.cnblogs.com/lzs-888/p/10143508.html
Copyright © 2011-2022 走看看