« PHP:substr_count()関数 | メイン | PHP:array_keys()関数 »

2005年11月02日

PHP:array_rand()関数

array_rand()関数は、配列から1つ以上の要素のインデックスをランダムに抽出します。

array_rand($ARRAY, $num);
$num=1の場合: 配列から抽出したインデックスをダイレクトに返す
$num=2以上の場合: 配列から$num分インデックスをランダムに抽出し、配列として返す

srand((double)microtime()*100000000);  //乱数生成器を初期化
$ARRAY = array("PHP", "PostgreSQL", "MySQL", "perl");
$res = array_rand($ARRAY, 1);
//$resにはインデックス番号が格納されます。
print_r($ARRAY[$res]);

※上記の結果、たとえば「PHP」を出力します。(結果はランダム)

$RES_ARRAY = array_rand($ARRAY, 1);
//$RES_ARRAYには配列が格納されます。
print_r($RES_ARRAY);

※上記の結果、たとえば「Array([0]=>2 [1]=>1)」を出力します。(結果はランダム)

ワンポイント
array_rand()関数を使用する際には、PHP4ではあらかじめsrand()関数を使用して乱数生成器を初期化しておく必要があります。(srand()関数は、乱数ジェネレータを初期化する関数です。PHP5では初期化は必要ありません。)

投稿者 wing : 2005年11月02日 23:24

コメント