【PHP】配列から指定したエントリの数のバリューをランダムに抽出する

  • 4
    いいね
  • 13
    コメント
この記事は最終更新日から1年以上が経過しています。

前書き

既知のメソッドがあるかなーと思ったらなかったので、作りました。

code

array_rand_value.php
/**
 * 配列から指定したエントリの数のバリューをランダムに抽出する
 * 
 * @param array $array 抽出元の配列
 * @param int $num 取得する要素数
 * @return array 抽出後の配列
 */
function array_rand_value($arr, $num = 1)
{
    if ($num >= count($arr)) {
        return $arr;
    }

    $result = array();
    $rand_keys = array_rand($arr, $num);
    foreach ($rand_keys as $key) {
        $result[] = $arr[$key];
    }

    return $result;
}