我有一个嵌套的关联数组,如下所示,需要帮助为每个键(如'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
)
)
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);
}
}
}