更新:我得到了按ID排序的数组,在分组的情况下,正如你所看到的,每个类都在一起。我想首先按ID排序,从最大到最小(反向到数组),然后在每个按名称排序的类中,我将显示示例以使其清晰。
我有这个数组:
Array
(
[0] => Array
(
[0] => 1 //ID
[1] => 88 //Class
[2] => 'a' //Name
)
[1] => Array
(
[0] => 2 //ID
[1] => 88 //Class
[2] => 'b' //Name
)
[2] => Array
(
[0] => 3 //ID
[1] => 7 //Class
[2] => 'v' //Name
)
[3] => Array
(
[0] => 4 //ID
[1] => 332 //Class
[2] => 'd' //Name
)
[4] => Array
(
[0] => 5 //ID
[1] => 332 //Class
[2] => 'z' //Name
)
)
在这个过程之后,我想要得到:
Array
(
[0] => Array
(
[0] => 4 //ID
[1] => 332 //Class
[2] => 'd' //Name
)
[1] => Array
(
[0] => 5 //ID
[1] => 332 //Class
[2] => 'z' //Name
)
[2] => Array
(
[0] => 3 //ID
[1] => 7 //Class
[2] => 'v' //Name
)
[3] => Array
(
[0] => 1 //ID
[1] => 88 //Class
[2] => 'a' //Name
)
[4] => Array
(
[0] => 2 //ID
[1] => 88 //Class
[2] => 'b' //Name
)
)
我试着在两个字段中使用array_multisort,但这不起作用。有谁有主意吗?
谢谢
发布于 2018-09-13 07:32:20
这并不是我所说的分组,尽管我能理解为什么你会这样想。实际上,这只是一种具有分层标准集的排序,而不仅仅是一个单一的标准。您可以按父ID排序,然后使用ID来打破平局。这可以用usort
来完成。
usort($data, function($a, $b) {
// compare group ID
return ($a[2] - $b[2]) ?: ($a[0] - $b[0]);
// compare ID if group ID is equal
});
https://stackoverflow.com/questions/52304704
复制相似问题