待排序数组如下:
$arr = [
['name'=>'zhangsan', 'age'=>20],
['name'=>'lisi', 'age'=>25],
['name'=>'wangwu', 'age'=>18],
['name'=>'houliu', 'age'=>22],
];
方法一:
function multisort($arr, $key){
if(! is_array($arr) || ! isset($key))
return false;
$key_arr = [];
foreach($arr as $val){
$key_arr[] = $val[$key];
}
array_multisort($key_arr, SORT_ASC, $arr);
return $arr;
}
$arr = multisort($arr, 'age');
方法二:
function compare($key){
return function($val1, $val2) use ($key){
if($val1[$key] == $val2[$key]){
return 0;
}elseif($val1[$key] > $val2[$key]){
return 1;
}else{
return -1;
}
};
}
usort($arr, compare('age'));