Php breaks the simple example of an array, two-dimensional array, and multi-dimensional array.
The shuffle function in php can only disrupt one-dimensional arrays. How can we quickly and conveniently disrupt multi-dimensional arrays? The manual provides
<?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 disordered method for multi-dimensional arrays below? 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 functions are also from the php manual, which can disrupt 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 a simple example of a small series of php disrupting the array of two-dimensional arrays and multi-dimensional arrays. I hope you can provide more support ~