如何在PHP中从多维数组中对内部数组进行排序


How to sort the inner array from a multidimensional array in PHP?

我从SQL查询中得到一个名为$user_alerts的多维数组。为了供您参考,我在这里打印阵列:

Array
(
    [154472] => Array
        (
            [3829802] => Array
                (
                    [34438] => 34438
                    [34442] => 34442
                    [34429] => 34429
                    [34443] => 34443
                )
            [3830078] => Array
                (
                    [34442] => 34442
                    [34438] => 34438
                    [34443] => 34443
                    [34429] => 34429
                )
            [3829803] => Array
                (
                    [34442] => 34442
                    [34438] => 34438
                    [34429] => 34429
                    [34443] => 34443
                )
        )
    [154554] => Array
        (
            [3831407] => Array
                (
                    [34438] => 34438
                    [34429] => 34429
                    [34443] => 34443
                    [34442] => 34442
                )
            [3831408] => Array
                (
                    [34429] => 34429
                    [34443] => 34443
                    [34442] => 34442
                    [34438] => 34438
                )
        )
    [154551] => Array
        (
            [3831329] => Array
                (
                    [34442] => 34442
                    [34438] => 34438
                    [34443] => 34443
                    [34429] => 34429
                )
        )
    [154477] => Array
        (
            [3830046] => Array
                (
                    [34442] => 34442
                    [34429] => 34429
                    [34438] => 34438
                    [34443] => 34443
                )
            [3829564] => Array
                (
                    [34429] => 34429
                    [34442] => 34442
                    [34438] => 34438
                    [34443] => 34443
                )
        )
    [154474] => Array
        (
            [3829402] => Array
                (
                    [34429] => 34429
                    [34442] => 34442
                    [34438] => 34438
                    [34443] => 34443
                )
        )
    [154473] => Array
        (
            [3829377] => Array
                (
                    [34442] => 34442
                    [34429] => 34429
                    [34438] => 34438
                    [34443] => 34443
                )
        )
    [154541] => Array
        (
            [3831211] => Array
                (
                    [34442] => 34442
                    [34438] => 34438
                    [34443] => 34443
                    [34429] => 34429
                )
        )
    [154514] => Array
        (
            [3830597] => Array
                (
                    [34442] => 34442
                    [34438] => 34438
                    [34429] => 34429
                    [34443] => 34443
                )
        )
    [154513] => Array
        (
            [3830557] => Array
                (
                    [34442] => 34442
                    [34438] => 34438
                    [34429] => 34429
                    [34443] => 34443
                )
        )
    [154493] => Array
        (
            [3830072] => Array
                (
                    [34442] => 34442
                    [34429] => 34429
                    [34438] => 34438
                    [34443] => 34443
                )
            [3829611] => Array
                (
                    [34429] => 34429
                )
        )
    [154491] => Array
        (
            [3829998] => Array
                (
                    [34429] => 34429
                    [34443] => 34443
                    [34442] => 34442
                    [34438] => 34438
                )
        )
)

现在我想按升序对内部数组进行排序。需要排序的样本内部数组如下(第一个内部数组元素)。

 [3829802] => Array
                    (
                        [34438] => 34438
                        [34442] => 34442
                        [34429] => 34429
                        [34443] => 34443
                    )

实际上,我想对所有这样的内部数组进行排序。我尝试了很多技巧,但都没有达到预期的效果。有人能帮我解决这个问题吗?提前谢谢。

生成数组时是对其进行排序的最佳时机。构建数组时,只需调用ksort($array)

如果出于任何原因,这都是不可行或不可能的,你可以在数组上循环并排序:

foreach($array as $key => $value){
    foreach($value as $innerKey => $inner){
        ksort($inner);
        $array[$key][$innerKey] = $inner;
    }
}