Php 数组\比较子数组时的多重排序行为

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]

这是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] => 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发表的评论是正确答案。子数组中的元素数决定排序顺序


在问题示例中使用而不是将始终产生相同的结果。

两个子阵列的元素数量完全相同,因此被认为是相等的。因此,顺序是未定义的。我的示例在本教程中没有指定任何排序标志