1.一维数组排序
以下圈起来的方法,则为一维数组排序
2.二维数组:利用内置方法(array_multisort)
/**
* 二维数组排序
* @param array $array 二维数组
* @param string $sort_key 需要排序的字段键名
* @param int $sort_order 排序方式(SORT_ASC:升序、SORT_DESC:降序)
* @param int $sort_flags 排序类型(SORT_NUMERIC:数字大小排序、SORT_STRING:字符串比较)
* @return array|bool
*/
function arr2sort($array = [], $sort_key = '', $sort_order = SORT_ASC, $sort_flags = SORT_NUMERIC){
if(empty($array))
return false;
foreach ($array as $val){
if(!is_array($val))
return false;
$arr_kes[] = $val[$sort_key];
}
array_multisort($arr_kes,$sort_order,$sort_flags,$array);
return $array;
}
$arr = [
['name' => '张三','age' => 18],
['name' => '李四','age' => 16],
['name' => '王五','age' => 20],
['name' => '李丽','age' => 24],
];
$result = $this->arr2sort($arr,'age',SORT_DESC,SORT_NUMERIC);
dump($result);