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