php 配列の値をランダムに取り出す

php 配列の値をランダムに取り出す

phpで、array_randを使用して、配列からランダムに値を取得するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

array_rand使い方

array_randを使用すれば、配列からランダムに値を取得することが可能です。

array_rand(配列,取得したい数);
// デフォルトでは取得する数は1になっています

以下は、配列からランダムに値を取得するサンプルコードとなります。

<?php

$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

$result = array_rand($arr);

echo $result . PHP_EOL; // 6 ← ランダムに取得される

取得したい数を指定することも可能です。

<?php

$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

$result = array_rand($arr, 5);

print_r($result);

実行結果

Array
(
    [0] => 0
    [1] => 6
    [2] => 7
    [3] => 8
    [4] => 9
)

取得したい数が、配列の要素数より上回る場合はエラーとなります。

<?php

$arr = [1, 2, 3, 4];

$result = array_rand($arr, 5);
// PHP Fatal error:  Uncaught ValueError: array_rand(): Argument #2 ($num) must be between 1 and the number of elements in argument #1 ($array) in