概要
PHPの組み込み関数であるarray_rand()
の仕様を勘違いして一瞬詰まったので簡単にまとめておく。
array_rand()は引数の配列のキーをランダムで返す
言葉で説明するより見ていただいたほうが早い気がするのでまずはコードを掲載する。
「あ、い、う」をそれぞれランダムに返してほしくて下記のようなコードを書いた
<?php
$array = [
'あ',
'い',
'う',
];
echo array_rand($array);
これを実行しても「0~2」のintが得られるだけで「あ、い、う」をランダムで返してくれない。
これはarray_rand()
の仕様に「引数の配列のインデックスをランダムに返す」ためである。
なので「あ、い、う」をそれぞれランダムに得たいなら下記のように記載する必要がある。
<?php
$array = [
'あ',
'い',
'う',
];
$randIndex = array_rand($array);
echo $array[$randIndex];