最近遇到一個需求,把一個數組隨機打亂順序,我們可以用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);
?>
輸出隨機打亂順序后的數組。
