array_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

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

説明

array_rand(array $array, int $num = 1): int|string|array

一つ以上のランダムなエントリを配列から取り出し、 取り出したエントリのキーを返します。 この関数が使う疑似乱数生成器は、暗号学的な使い方には適していません。

パラメータ

array

入力の配列。

num

取得するエントリの数を指定します。

戻り値

エントリを一つだけ取得する場合、 array_rand() はランダムなエントリのキーを返します。 その他の場合は、ランダムなエントリのキーの配列を返します。 これにより、ランダムな値だけではなくランダムなキーも配列から取得できるようになります。 複数のキーが返される場合、配列に格納された順番と同じ順で返されます。 配列の中にある要素数より多くの要素を取り出そうとすると E_WARNING レベルのエラーが発生し、NULL を返します。

変更履歴

バージョン 説明
7.1.0 内部的なランダム化アルゴリズムは、 libc の rand 関数ではなく、 » メルセンヌツイスタ 乱数生成器を使うように 変更されました

例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";
?>

注意

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

参考

関連キーワード:  配列, キー, array, 取得, 一つ, rand, エントリ, 関数, 生成, 乱数