カードゲームやビンゴマシンを作る際には、配列のデータをシャッフルするアルゴリズムが重要
$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";
}