Php 数组\比较子数组时的多重排序行为
这是array_multisort中的一个bug,还是可以解释其行为 下面的代码Php 数组\比较子数组时的多重排序行为,php,Php,这是array_multisort中的一个bug,还是可以解释其行为 下面的代码 $a = array( "aa" => array("2" => "2"), "a" => array("1" => "1"), ); array_multisort($a); print_r($a); 印刷品 Array ( [aa] => Array ( [2] => 2 ) [a]
$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
)
)
如果我按如下所示更改参数$a的键顺序,则打印的结果也具有不同的顺序
$a = array(
"a" => array("1" => "1"),
"aa" => array("2" => "2"),
);
我希望array\u multisort的输出在这两种情况下都是相同的?对于数组中的数值,请使用array\u multisort$num、SORT\u DESC、SORT\u numeric;使用sort_numeric进行排序Rizier123发表的评论是正确答案。子数组中的元素数决定排序顺序
在问题示例中使用而不是将始终产生相同的结果。两个子阵列的元素数量完全相同,因此被认为是相等的。因此,顺序是未定义的。我的示例在本教程中没有指定任何排序标志