The shuffle function in php can only shuffle a one-dimensional array, there are What's a quick and easy way to scramble a multidimensional array?
is provided in the manual
<?php function shuffle_assoc($list) { if (!is_array($list)) return $list; $keys = array_keys($list); shuffle($keys); $random = array(); foreach ($keys as $key) $random[$key] = $list[$key]; return $random; } ?>
The above is for two-dimensional arrays!
What is the following shuffle method for multi-dimensional arrays? As convenient and fast as possible :
<?php function shuffle_assoc($list) { if (!is_array($list)) return $list; $keys = array_keys($list); shuffle($keys); $random = array(); foreach ($keys as $key) $random[$key] = shuffle_assoc($list[$key]); return $random; } ?>
The following function is also from the PHP manual, which can scramble multi-dimensional arrays:
/** * Shuffles an associative array recursive * * @param array $array * @return array * */ function rec_assoc_shuffle($array) { $ary_keys = array_keys($array); $ary_values = array_values($array); shuffle($ary_values); foreach($ary_keys as $key => $value) { if (is_array($ary_values[$key]) AND $ary_values[$key] != NULL) { $ary_values[$key] = rec_assoc_shuffle($ary_values[$key]); } $new[$value] = $ary_values[$key]; } return $new; }
The above is the simple example of php disrupting an array, a two-dimensional array, and a multi-dimensional array brought to you by the editor. I hope you will support Bangkejia~