PHP / array_rand_value() - 配列からランダムな要素を取り出す | とんでもブログ ~ プログラマのWeb開発メモ (PHP, CSS, JavaScript)

PHP / array_rand_value() - 配列からランダムな要素を取り出す

配列と要素数を引数として指定すると、ランダムで配列要素が返ってくる関数が欲しいと思いました。

PHP標準関数には用意されていない様子。
(PHP標準関数のarray_rand()だと要素ではなくキーを取ってきてしまう)

ですので、自分で作りました。

// 配列から指定した要素数分、ランダムに要素を取り出す
function array_rand_value(&$input_array, $get_num = 1)
{
$return_array = array();

$key_rand = array_rand($input_array, $get_num);
foreach ($key_rand as $key)
{
$return_array[] = $input_array[$key];
}

return $return_array;
}


$get_num = 1 と定数が入ってしまうのがどうも納得がいきません。
関数のデフォルト値を取得できればいいのに・・・。

また、処理効率化のためにアドレス渡しにしているのも怖いです。
C言語みたいに引数のconst指定ができればいいのに・・・。


--

この記事を書いた後に気づきましたがほとんど同じ記事を書かれてる方がいました
http://blog.tofu-kun.org/070419092918.php