PHPでランダムかつ重複しない数値を配列にする方法
PHPで、ランダムな数値を複数取得して、かつその中の値には重複しないようにしたい場合の処理です。
取得結果は扱いやすい配列で残ります。
僅か3行のソースコードで実現できるのでお試しください。
特定の範囲の乱数から重複しない値を複数抽出する方法
サンプルコード
//1から10までの数値から抽選を行うため、1~10の値の配列を生成する $array = range(1, 10); //配列をシャッフルする shuffle($array); //配列の上から5番目まで切り取る $array = array_slice($array, 0, 5); print_r($array);
Array
(
[0] => 3
[1] => 8
[2] => 1
[3] => 5
[4] => 2
)
(
[0] => 3
[1] => 8
[2] => 1
[3] => 5
[4] => 2
)
実際にこのプログラムを動作させていますので、リロ―ドすると結果が変わります。
ちゃんと重複しない値が5つ選ばれていることが分かります。
この処理は、以下の流れで行われています。
- 特定の数値の範囲指定を行い、1つずつ格納した配列を生成する
- 配列の値をシャッフルする
- 配列の上から指定した値を切り取る
- 重複しない値を任意の数取得!
どこからどこまでの値を対象にするか、抽選結果は何件にするかは、各々で変更を加えてください。
配列の切り取りは、array_slice関数を使用しています。
以上、PHPでランダムかつ重複しない数値を配列にする方法、でした。
ディスカッション
コメント一覧
まだ、コメントがありません