我有一个嵌套的关联数组,如下所示,需要帮助为每个键排序数组,例如'first_name'和'score'。
例如:
Array
(
[12345] => Array
(
[75] => Array
(
[first_name] => Xen
[score] => 245
)
)
[9876] => Array
(
[75] => Array
(
[first_name] => Shane
[score] => 300
)
)
[4567] => Array
(
[75] => Array
(
[first_name] => Dan
[score] => 100
)
)
)
结果应该按照升序排列数组:
Array
(
[first_name] => Array
(
[0] => 4567
[1] => 9876
[2] => 12345
)
[score] => Array
(
[0] => 4567
[1] => 12345
[2] => 9876
)
)
答案 0 :(得分:1)
ksort
是PHP按键排序的功能。因此,要按其键对数组$arr
进行排序,请执行以下操作:
ksort($arr);
请注意ksort
返回布尔值(成功或失败),因此您不应该$arr = ksort($arr);
。 ksort
修改原始数组。
要按键递归地对多维关联数组(例如,关联数组的关联数组)进行排序,请尝试ksort
手册页底部的用户提供的函数(我没试过,但是它看起来会很好用):
function deep_ksort(&$arr) {
ksort($arr);
foreach ($arr as &$a) {
if (is_array($a) && !empty($a)) {
deep_ksort($a);
}
}
}