在不知道现有维度的情况下动态排序数组

时间:2012-11-13 12:03:04

标签: php sorting multidimensional-array

我知道ksort()用于按对数组进行排序。我的数组的最大尺寸总是不同的。有时2,有时5,有时10维,所以如何使用ksort()动态排序而不知道其中存在多少维度?

由于

示例阵列

[2010] => Array
        (
            [3] => Array
                (
                    [B] => Array
                        (
                            [6] => Array
                                (
                                    [Patato] => 
                                )

                            [C] => Array
                                (
                                    [Patato] => 
                                    [Zozo] => 
                                )
                        )

                    [A] => Array
                        (
                            [F] => Array
                                (
                                    [Tomato] => 
                                    [Apple] => 
                                    [Kiwi] => 
                                )
                        )

            [1] => Array
                (
                    [4] => Array
                        (
                            [A] => Array
                                (
                                    [Orange] => 
                                )
                        )

1 个答案:

答案 0 :(得分:2)

如果您的意思是要对递归进行排序:

function deep_ksort(&$arr) {
    ksort($arr);
    foreach ($arr as &$a) {
        if (is_array($a) && !empty($a)) {
            deep_ksort($a);
        }
    }
} 

这来自http://www.php.net/manual/en/function.ksort.php#105399