Php 多级排序多维数组
伙计们,帮我做数组排序 我有一个数组:Php 多级排序多维数组,php,arrays,Php,Arrays,伙计们,帮我做数组排序 我有一个数组: Array ( [1] => Array ( [pos] => 1 [team_name] => Team1 [tours] => Array ( [0] => Array (
Array
(
[1] => Array
(
[pos] => 1
[team_name] => Team1
[tours] => Array
(
[0] => Array
(
[tour_id] => 0
[tour_total] => 30
)
[1] => Array
(
[tour_id] => 1
[tour_total] => 31
)
[2] => Array
(
[tour_id] => 2
[tour_total] => 29
)
[3] => Array
(
[tour_id] => 3
[tour_total] => 0
)
[4] => Array
(
[tour_id] => 4
[tour_total] => 0
)
[5] => Array
(
[tour_id] => 5
[tour_total] => 0
)
[6] => Array
(
[tour_id] => 6
[tour_total] => 0
)
[7] => Array
(
[tour_id] => 7
[tour_total] => 0
)
)
[total] => 90
)
[2] => Array
(
[pos] => 2
[team_name] => Team2
[tours] => Array
(
[0] => Array
(
[tour_id] => 0
[tour_total] => 30
)
[1] => Array
(
[tour_id] => 1
[tour_total] => 30
)
[2] => Array
(
[tour_id] => 2
[tour_total] => 30
)
[3] => Array
(
[tour_id] => 3
[tour_total] => 0
)
[4] => Array
(
[tour_id] => 4
[tour_total] => 0
)
[5] => Array
(
[tour_id] => 5
[tour_total] => 0
)
[6] => Array
(
[tour_id] => 6
[tour_total] => 0
)
[7] => Array
(
[tour_id] => 7
[tour_total] => 0
)
)
[total] => 90
)
)
此数组包含团队按巡更的结果
我需要按“总计”值对该数组进行排序。如果相邻团队的值相等,则按第8轮的值排序(tour_id=7)。如果此处的值相等,则按巡更值7(巡更id=6)排序。等等。我认为您应该为此使用
usort()
函数。如果您使用的是PHP7或更高版本,则可以使用以下代码
usort($array, function($a, $b) {
return $a[tour_total] <=> $b[tour_total];
});
或者您可以像下面这样使用array\u multisort
array_multisort(array_map(function($element) {
return $element['order'];
}, $array), SORT_ASC, $array);
print_r($array);
它是否有助于
array\u multisort
功能:?
array_multisort(array_map(function($element) {
return $element['order'];
}, $array), SORT_ASC, $array);
print_r($array);