最近遇到一個需求,把一個數組隨機打亂順序,我們可以用php的shuffle函數,但是這個函數會把數組的鍵清空建立新的鍵,那么我們若想保留鍵只需要利用shuffle函數再做一下處理就可以了。可以自定義一個函數。
<?php function retain_key_shuffle(array &$arr){ if (!empty($arr)) { $key = array_keys($arr); shuffle($key); foreach ($key as $value) { $arr2[$value] = $arr[$value]; } $arr = $arr2; } } ?>
通過調用上面的函數就可以獲得保留鍵順序打亂新的數組了。
<?php $arr = array('a' => 'A', 'b' => 'B'); retain_key_shuffle($arr); var_export($arr); ?>
輸出隨機打亂順序后的數組。