PHPである整数の範囲内で乱数を生成するメソッドが無かったので、作ってみました。
生成した乱数から、特定の整数を除外することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/** * 指定範囲の乱数から、指定個数を取得 * @param integer $min 範囲の最小値 * @param integer $max 範囲の最大値 * @param array $exclusions 除外する数値 * @param array $cnt 生成個数 */ function rnd($min, $max, $exclusions, $cnt) { $rg = range($min, $max); foreach($exclusions as $ex) { unset($rg[$ex]); } //indexを詰める $rg = array_values($rg); shuffle($rg); //先頭から、指定数量を返す return array_slice($rg, 0, $cnt); } |