Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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_Multidimensional Array - Fatal编程技术网

PHP按子键对多维数组排序

PHP按子键对多维数组排序,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我已经看过许多与此相关的线索,但没有一条对我有任何帮助。我有一个数组,它遵循$array[location][store][person]=funds的基本结构。排序数组以使[person]键按ASC顺序排列的最有效方法是什么 这就是它现在的样子: Array ( [Florida] => Array ( [AppleSauce] => Array ( [Rabbi

我已经看过许多与此相关的线索,但没有一条对我有任何帮助。我有一个数组,它遵循$array[location][store][person]=funds的基本结构。排序数组以使[person]键按ASC顺序排列的最有效方法是什么

这就是它现在的样子:

Array
(
    [Florida] => Array
        (
            [AppleSauce] => Array
                (
                    [Rabbit, Hunting] => 5
                    [Brown, Bubba] => 20
                    [Chicken, Cantina] => 10
                    [Gum, Bubble] => 10
                    [Pool, Swimming] => 4
                    [Bath, Taka] => 2
                )

        )

    [Texas] => Array
        (
            [BeatleJuice] => Array
                (
                    [Chicken, Cantina] => 10
                    [Pool, Swimming] => 4
                    [House, Road] => 5
                )
            [CaramelApple] => Array
                (
                    [Chicken, Cantina] => 10
                    [Pool, Swimming] => 4
                    [House, Road] => 5
                )

        )
这就是我想要的:

Array
    (
        [Florida] => Array
            (
                [AppleSauce] => Array
                    (
                        [Bath, Taka] => 2
                        [Brown, Bubba] => 20
                        [Chicken, Cantina] => 10
                        [Gum, Bubble] => 10
                        [Pool, Swimming] => 4
                        [Rabbit, Hunting] => 5
                    )

            )

        [Texas] => Array
            (
                [BeatleJuice] => Array
                    (
                        [Chicken, Cantina] => 10
                        [House, Road] => 5
                        [Pool, Swimming] => 4
                    )
                [CaramelApple] => Array
                    (
                        [Chicken, Cantina] => 10
                        [House, Road] => 5
                        [Pool, Swimming] => 4
                    )

            )
可以使用按字母顺序对人员的数组键进行排序

foreach($array as $state => $locations) {
    foreach($locations as $location => $people) {
        ksort($array[$state][$location]);
    }
}

php函数
array\u multisort
可以执行以下操作:

排序多维数组

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>
这基于官方文件:


根据PHP手册,它看起来应该可以工作@我试过的是
asort()
uksort()
ksort()
,还有
array\u multisort()
,但都没法用。根据手册,它们应该可以工作,但是如何将它应用到像我这样的多维数组中呢?谢谢。这正是我想要的。我之前试的时候一定是出了什么问题。谢谢,但这并不像FuzzyTree显示的那样有效。
array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}