php中的shuffle函數只能打亂一維數組,有什麼辦法快速便捷的打亂多維數組?手冊上提供了
<?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; } ?>
上面這個是針對二維數組的!
下面針對多維數組的亂序方法?盡可能的方便快速:
<?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; } ?>
以下函數也是出自php手冊,可以打亂多維數組:
/** * 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; }
查看本欄目