php保留键随机打乱数组顺序

Posted LoongKo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php保留键随机打乱数组顺序相关的知识,希望对你有一定的参考价值。

最近遇到一个需求,把一个数组随机打乱顺序,我们可以用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);
?>

输出随机打乱顺序后的数组。

以上是关于php保留键随机打乱数组顺序的主要内容,如果未能解决你的问题,请参考以下文章

php数组打乱顺序

php中给出一组数组,要求把这组数据打乱顺序后输出,而且不能重复!!请高手帮忙呀!

如何打乱一组数的顺序?

随机打乱数组顺序之随机洗牌算法

洗牌算法C++将数组的元素顺序随机打乱(条件概率证明算法充分随机)

Java开发面试题及答案,java随机打乱数组顺序