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; }