カードゲームやビンゴマシンを作る際には、配列のデータをシャッフルするアルゴリズムが重要
$sample_ary = array(1,2,3,4,5); shuffle($sample_ary); // display result foreach ($sample_ary as $v){ echo $v."\n"; }
フィッシャー・イェーツのシャッフル
<pre><?php // mt_rand() array shuffle function function mt_shuffle(&$a){ $a = array_values($a); for ($i = count($a) - 1; $i >= 1; $i--){ $r = mt_rand(0, $i); list($a[$i], $a[$r]) = array($a[$r], $a[$i]); } } // mt_shuffle() use example $sample_ary = array(1,2,3,4,5); mt_shuffle($sample_ary); foreach($sample_ary as $v){ echo $v."\n"; }