PHP随机重新排序数组

时间:2016-11-22 07:16:42

标签: php arrays

我需要随机重新排序数组,但我不确定最好/最干净/最快的方法是什么。

所以我想要实现的目标如下。假设我有一个看起来像这样的数组:

$array = array(4, 4, 4, 4, 6, 6, 6, 6, 8, 8, 10, 10, 20, 40, 60);

我的目标是随机获得这样的东西:

$array = array(6, 4, 4, 10, 4, 6, 4, 6, 60, 6, 8, 6, 10, 40, 8, 20);

这是我一直在尝试但它似乎没有按预期工作:

$array = array(4, 4, 4, 4, 6, 6, 6, 6, 8, 8, 10, 10, 20, 40, 60);
$newArray = array();

$randomNumber = rand(0 , 14);

for ($x = 0; $x <= 15; $x++) {
    $newArray[$x] = $array[$randomNumber];
}

非常感谢任何可以帮助我的人:)

2 个答案:

答案 0 :(得分:2)

使用shuffle()函数。
洗牌($阵列);

http://php.net/manual/en/function.shuffle.php

答案 1 :(得分:2)

$array = array(4, 4, 4, 4, 6, 6, 6, 6, 8, 8, 10, 10, 20, 40, 60);

检查先前阵列的输出

echo "<pre>";
print_r($array);
echo "</pre>";

改组前一阵列&amp;再次检查输出。

shuffle($array);
print_r($array);

现在运行像

这样的foreach循环
foreach($array as $item){
  echo $item;
}

注意:您不需要将shuffle数据存储到新阵列。