array_rand: 配列から一つ以上の要素をランダムに取得する (配列 関数) - PHPプロ!マニュアル

PHPマニュアル

array_rand: 配列から一つ以上の要素をランダムに取得する

array_rand

(PHP 4, PHP 5)

array_rand配列から一つ以上の要素をランダムに取得する

説明

mixed array_rand ( array $input [, int $num_req = 1 ] )

一つ以上のランダムなエントリを配列から取り出し、 取り出したエントリのキーを返します。

パラメータ

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($input2);
echo 
$input[$rand_keys[0]] . "\n";
echo 
$input[$rand_keys[1]] . "\n";
?>

注意

注意: PHP 4.2.0 以降、 srand() または mt_srand() によりランダム数生成器にシードを与える必要はありません。 これは、この処理が自動的に行われるためです。

参考


PHPマニュアル



Pick Up Q&A

Q
セッションがいいのか、それともデータベースがいいのか教えて下さい。
 このエントリーをはてなブックマークに追加 
A
>ボタンをクリックしたら選んだ商品情報を持っておきたいと思っています。 そのくらいのことならセッションもしくはCookie(期限短め:場合によってはブラウザ閉じるまで)でいいんじゃないですかね。 #わ...

>>続きを読む

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

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)