Учитывает ли функция сортировки листовые узлы в многоуровневом массиве?

Следующий фрагмент кода предназначен для создания многоуровневого массива, печати его, затем перемешивания, повторной печати и сортировки массива.

$arr=array(
        array(
            array('a','b','c')
        ),
        array(
            array('d','e','f')
        ),
    array(
            array('g','h','i')
        ),
);
print_r($arr);
shuffle($arr);
print_r($arr);
sort($arr);
print_r($arr);

Теперь странная вещь, которую я заметил, когда shuffle () , он только перетасовывает индексы массива, который перетасовывается, он не перемешивает, большинство внутренних элементов a, b, c к чему-то еще, но когда sort () функция возвращает массив в нормальное состояние и листовые узлы возвращаются в алфавитный порядок . Почему это происходит?

Вот пример вывода: * Исходный массив *

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => a
                    [1] => b
                    [2] => c
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [0] => d
                    [1] => e
                    [2] => f
                )
        )
    [2] => Array
        (
            [0] => Array
                (
                    [0] => g
                    [1] => h
                    [2] => i
                )
        )
)

Перемешанный массив

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => g
                    [1] => h
                    [2] => i
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [0] => a
                    [1] => b
                    [2] => c
                )
        )
    [2] => Array
        (
            [0] => Array
                (
                    [0] => d
                    [1] => e
                    [2] => f
                )
        )
)

Сортированный массив

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => a
                    [1] => b
                    [2] => c
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [0] => d
                    [1] => e
                    [2] => f
                )
        )
    [2] => Array
        (
            [0] => Array
                (
                    [0] => g
                    [1] => h
                    [2] => i
                )
        )
)
5
задан Sujit Agarwal 6 June 2011 в 11:47
поделиться