<?php
/**
* 方案一
* @param array $arr 待排序数组
* @param string $key 指定排序的key
* @param string $order 降序或升序
* @return array 排序后的数组
*/
function multi_sort1($arr, $key, $order = 'ASC')
{
$temp = [];
foreach ($arr as $val) {
$temp[] = $val[$key];
}
if ($order == 'ASC') {
return array_multisort($temp, SORT_ASC, $arr);
} else {
return array_multisort($temp, SORT_DESC, $arr);
}
}
/**
* 方案二
* @param array $arr 待排序数组
* @param string $key 指定排序的key
* @param string $order 降序或升序
* @return array 排序后的数组
*/
function multi_sort2($arr, $key, $order = 'ASC') {
if ($order == 'ASC') {
usort($arr, function($a, $b) {
return $a[$key] > $b[$key] ? 1 : -1;
});
} else {
usort($arr, function($a, $b) {
return $a[$key] > $b[$key] ? -1 : 1;
});
}
}