サンプル・プログラム
準備
35: //座席数
36: $NumSeats = 30;
あらかじめ変数 $NumSeats に座席数を代入しておく。
解説:配列の作成とシャフル
まず。添字を座席番号(1から順番)に、要素を出席番号と見なした配列を作成する。
PHPでは、ある範囲の整数を要素として順番に代入する range という関数が用意されているので、これを使うことにする。
これで座席番号と出席番号を順序よく対応させた配列 $seats ができる。
つぎに配列 $seats をランダム・シャフルするのだが、その前に、乱数がよりランダムになるように、乱数ジェネレータを初期化しておく。組み込み関数 srand を使って初期化するのだが、初期化のためのシード(種)として現在時刻(マイクロ秒)を microtime 関数で与えておく。
なお、PHP 4.2以降ではシードは自動的に与えられるので、単にsrand()と指定すれば良い。
配列の要素をシャフルするには、組み込み関数 shuffle を使う。
シャフルした後の配列の添字は0から順番になっている点に注意しておきたい。
PHPでは、ある範囲の整数を要素として順番に代入する range という関数が用意されているので、これを使うことにする。
これで座席番号と出席番号を順序よく対応させた配列 $seats ができる。
つぎに配列 $seats をランダム・シャフルするのだが、その前に、乱数がよりランダムになるように、乱数ジェネレータを初期化しておく。組み込み関数 srand を使って初期化するのだが、初期化のためのシード(種)として現在時刻(マイクロ秒)を microtime 関数で与えておく。
なお、PHP 4.2以降ではシードは自動的に与えられるので、単にsrand()と指定すれば良い。
配列の要素をシャフルするには、組み込み関数 shuffle を使う。
シャフルした後の配列の添字は0から順番になっている点に注意しておきたい。
PHPではこのように、組み込み関数だけを使って配列をシャフルすることができる。
この方法は、トランプをシャフルするゲームなどにも応用が利く。
この方法は、トランプをシャフルするゲームなどにも応用が利く。
(この項おわり)
PHPは、このような時に威力を発揮する関数を備えている。