Этот следующий фрагмент кода предназначен для создания многоуровневого массива, его печати, затем перемешивания, повторной печати и сортировки массива.
$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
)
)
)