这是array_multisort中的错误,还是可以解释行为?
以下代码
$a = array(
"aa" => array("2" => "2"),
"a" => array("1" => "1"),
);
array_multisort($a);
print_r($a);
打印
Array
(
[aa] => Array
(
[2] => 2
)
[a] => Array
(
[1] => 1
)
)
如果我更改param $ a的键顺序如下,打印的结果也有不同的顺序
$a = array(
"a" => array("1" => "1"),
"aa" => array("2" => "2"),
);
我希望array_multisort的输出在两种情况下都相同吗?
答案 0 :(得分:0)
对于数组中的数值使用array_multisort($num,SORT_DESC,SORT_NUMERIC);
使用sort_numeric进行排序
答案 1 :(得分:-1)
Rizier123发布的评论是正确答案。子数组中的元素数决定了排序顺序。
在问题的示例中使用ksort代替array_multisort将始终产生相同的结果。