php保留键随机打乱数组顺序shuffle
把一个数组随机打乱顺序,我们可以用php的shuffle函数,比如:
$arr = array('a' => 'A', 'b' => 'B','c'=>C,'d'=>D);
shuffle( $arr );
输出:
[0]=>A , 1=>b, 3=>c,4=>d
但是这个函数会把数组的键清空建立新的键,那么我们若想保留键只需要利用shuffle函数再做一下处理就可以了。
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;
}
}
//通过调用上面的函数就可以获得保留键顺序打乱新的数组了。
$arr = array('a' => 'A', 'b' => 'B','c'=>C,'d'=>D);
retain_key_shuffle($arr);
var_export($arr);
输出随机打乱顺序后的数组。
Array ( [b] => B [c] => C [a] => A [d] => D )