Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 多级排序多维数组_Php_Arrays - Fatal编程技术网

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);