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);