PHP:Shuffle数组,所以没有像对应的那样值

Ben*_*Ben 2 php arrays shuffle

有一个包含名称的数组,例如:

$ donalds_nephews = array('Huey','Dewey','Louie');

array
(
    [0] => Huey
    [1] => Dewey
    [2] => Louie
)
Run Code Online (Sandbox Code Playgroud)

我想要对这个数组进行洗牌,但要确保原始数组的值与洗牌的数据没有相同的关键字.

$donalds_nephews_shuffled = shuffle($donalds_nephews);
Run Code Online (Sandbox Code Playgroud)

这可能导致6种可能的排列:

  1. 休伊,杜威,路易
  2. 休伊,路易,杜威
  3. 杜威,路易,休伊
  4. 杜威,休伊,路易
  5. 路易,杜威,休伊
  6. 路易,休伊,杜威

第1,第2,第4和第5不得结果.

最好的方法是什么?这是秘密圣诞老人.

dec*_*eze 5

对原始数组进行随机播放,然后复制它并将所有条目移位一遍,然后将两者重新匹配以获得匹配.