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