二维数组排序问题

来源:互联网 发布:如何评价崇祯知乎 编辑:程序博客网 时间:2024/06/03 09:18

对于二维数组排序问题,在这里我只介绍两种,第一种就是二维普通数组,格式如:

Array(      array(),      array(),      array(),)

第二种就是二维对象数组,格式如:

Array(       {},       {},       {},     )

在这里统一的做出处理和分类总结。

首先是普通的二维数组(根据里面的一维数组中的某个字段的值进行排序)排序:

/**  * 根据字段进行排序  * @params array $array 需要排序的数组  * @params string $field 排序的字段  * @params string $sort 排序顺序标志 SORT_DESC 降序;SORT_ASC 升序  */function arraySequence($array, $field, $sort = 'SORT_DESC'){    $arrSort = array();    foreach ($array as $uniqid => $row) {        foreach ($row as $key => $value) {            $arrSort[$key][$uniqid] = $value;        }    }    array_multisort($arrSort[$field], constant($sort), $array);    return $array;}

第二种是二维对象数组排序,(也就是说数组中的是一系列对象,需要根据对象中的某个字段的值进行排序)

 /**   * 根据字段进行排序   * @params array $array 需要排序的对象数组   * @params string $field 排序的字段   * @params string $sort 排序顺序标志 SORT_DESC 降序;SORT_ASC 升序   */public static function arraySequence($array, $field, $sort = 'SORT_DESC') {      $arrSort = array();      for($i=0;$i<count($array);$i++){          $arrSort[] = $array[$i]->$field;      }       array_multisort($arrSort,constant($sort),$array);      return $array; }

注意:

这里不能直接把constant($sort)换为$sort,会报错, constant()函数的作用是返回常量的值,如果常量未定义则返回 NULL
0 0
原创粉丝点击