array_rand: 配列から一つ以上の要素をランダムに取得する (配列 関数) - PHPプロ!マニュアル
array_rand: 配列から一つ以上の要素をランダムに取得する
array_rand
(PHP 4, PHP 5)
array_rand — 配列から一つ以上の要素をランダムに取得する
説明
一つ以上のランダムなエントリを配列から取り出し、 取り出したエントリのキーを返します。
パラメータ
- input
-
入力の配列。
- num_req
-
取得するエントリの数を指定します。 配列の要素数より多くの要素を取り出そうとすると E_WARNING レベルのエラーとなります。
返り値
エントリを一つだけ取得する場合、 array_rand() はランダムなエントリのキーを返します。 その他の場合は、ランダムなエントリのキーの配列を返します。 これにより、ランダムなキーを取得し、 配列から値を取得することが可能になります。
変更履歴
| バージョン | 説明 |
|---|---|
| 5.2.10 | 結果の配列のキーがシャッフルされなくなりました。 |
| 4.2.0 | 乱数生成器が自動的にシードを生成するようになりました。 |
例
例1 array_rand() の例
<?php
srand((float) microtime() * 10000000);
$input = array("ネオ", "モーフィアス", "トリニティ", "サイファー", "タンク");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>注意
注意: PHP 4.2.0 以降、 srand() または mt_srand() によりランダム数生成器にシードを与える必要はありません。 これは、この処理が自動的に行われるためです。
参考
- shuffle() - 配列をシャッフルする




ページのトップへ


一つの目安として、ECサイトの購入情報など絶対に消えてはいけないものはDBに、カートなどの一時的に使用する情報や、ユーザに任意のタイミングで消去されても構わないものはセッションにと使い分けるといいでしょう。