在 php 中对数组进行洗牌很容易,但我的问题是当我尝试洗牌而不在该键之前或之后得到相同的结果时。
例子:
Array ( 0 => 1, 1 => 2, 2 => 3, 3 => 3 )
我必须有一个没有 3 的结果。
我想要的一些数组的例子:
Array ( 0 => 2, 1 => 3, 2 => 1, 3 => 3 )
我试图检查数组的每个项目,如果发生这种情况,我会再次对其进行洗牌,然后再检查一次。但这似乎在时间和过程上都是浪费。
编辑: 这是我使用的代码:
do
{
$not_valid=false;
for($i=0;$i<sizeof($arr_times)-1;$i++){
if($arr_times[$i]==$arr_times[$i+1])
$not_valid=true;
}
if($not_valid)
shuffle($arr_times);
}while ($not_valid);