$test = [
['name' => 'test1', 'age' => 10],
['name' => 'test2', 'age' => 50],
['name' => 'test3', 'age' => 15],
['name' => 'test4', 'age' => 32],
];
array_multisort(array_column($test,'age'),SORT_ASC,$test);
var_dump($test);
// 结果:
/*
array(4) {
[0]=>
array(2) {
["name"]=>
string(5) "test1"
["age"]=>
int(10)
}
[1]=>
array(2) {
["name"]=>
string(5) "test3"
["age"]=>
int(15)
}
[2]=>
array(2) {
["name"]=>
string(5) "test4"
["age"]=>
int(32)
}
[3]=>
array(2) {
["name"]=>
string(5) "test2"
["age"]=>
int(50)
}
}
*/
思路:
- 先使用array_column(array, column)将数组中要排序的字段值取出来
- 再使用array_multisort(数组(一维数组), 排序方式(SOTR_ASC,SOTR_DESC), 其他数组(可以是二维的))排序即可