PHPのarray_rand()
関数は、配列から、ひとつ以上の配列要素のキーを、ランダムに取得する組み込み関数。
定義
多様な型 array_rand( 配列型 $input[, 整数型 $num_req] );
パラメータ
- 配列型 $array
対象の配列を指定。
- 整数型 $num_req
オプション。
取得する配列要素数。初期設定値は、「1」。
戻り値
取得した配列要素のキーを格納した配列。
構文
配列要素のキーを、ひとつだけ、ランダムに取得
取得した要素のキーの配列 = array_rand( 配列 );
ひとつの配列要素を、「配列」からランダムに取得し、「取得した要素のキーの配列」に、取得した配列要素のキーを格納。
配列要素のキーを、指定した数だけ、ランダムに取得
取得した要素のキーの配列 = array_rand( 配列, 取得する配列要素数 );
「取得する配列要素数」に指定した数の配列要素を、「配列」からランダムに取得し、「取得した要素のキーの配列」に、取得した配列要素のキーを格納。
サンプル
配列から、ひとつの配列要素のキーを、ランダムに取得
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
$varKey = array_rand( $varArray );
echo $varArray[$varKey];
?>
$varArray = array( "白", "黒", "赤", "青", "緑" );
$varKey = array_rand( $varArray );
echo $varArray[$varKey];
?>
↓↓↓出力結果↓↓↓
赤
「白、黒、赤、青、緑」の中のいづれかひとつの値を表示する。
配列から、3つの配列要素のキーを、ランダムに取得
<pre>
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
print_r( array_rand( $varArray, 3 ) );
?>
</pre>
<?php
$varArray = array( "白", "黒", "赤", "青", "緑" );
print_r( array_rand( $varArray, 3 ) );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[0] => 1
[1] => 3
[2] => 4
)
(
[0] => 1
[1] => 3
[2] => 4
)
数値キー「0~4」の中から3つ取得する。
連想配列から、ひとつの配列要素のキーを、ランダムに取得
<?php
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
$varKey = array_rand( $varArray );
echo $varArray[$varKey];
?>
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
$varKey = array_rand( $varArray );
echo $varArray[$varKey];
?>
↓↓↓出力結果↓↓↓
赤
「白、黒、赤、青、緑」の中のいづれかひとつの値を表示する。
連想配列から、3つの配列要素のキーを、ランダムに取得
<pre>
<?php
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
print_r( array_rand( $varArray, 3 ) );
?>
</pre>
<?php
$varArray = array(
"white" => "白",
"black" => "黒",
"red" => "赤",
"blue" => "青",
"green" => "緑"
);
print_r( array_rand( $varArray, 3 ) );
?>
</pre>
↓↓↓出力結果↓↓↓
Array
(
[0] => white
[1] => red
[2] => green
)
(
[0] => white
[1] => red
[2] => green
)
文字列キー「white、black、red、blue、green」の中から3つ取得する。