数组多条件排序
多条件排序,如计算某三个条件的排名,如a成绩相同则对比b成绩,如b成绩还是相同则对比c成绩,以此类推,如三个成绩全部相同则按数组内顺序排序
$data = [
[
'a' => 1,
'b' => 2,
'c' => 3
],
[
'a' => 2,
'b' => 3,
'c' => 1
],
[
'a' => 1,
'b' => 2,
'c' => 2
]
];
$column_a = array_column($data,'a');
$column_b = array_column($data,'b');
$column_c = array_column($data,'c');
array_multisort($column_a,SORT_DESC,$column_b,SORT_DESC,$column_c,SORT_DESC,$data);
//结果
Array
(
[0] => Array
(
[a] => 2
[b] => 3
[c] => 1
)
[1] => Array
(
[a] => 1
[b] => 2
[c] => 3
)
[2] => Array
(
[a] => 1
[b] => 2
[c] => 2
)
)
本作品采用《CC 协议》,转载必须注明作者和本文链接