素肌にサスペンダー

個人的な備忘と日記

【PHP】配列からランダムで指定した数だけの要素を取得する

phpで、shufflearray_sliceを使って、配列から順番はランダムで指定した数だけの要素を取得する方法

以下のようなfunctionを作成したらできた。

function generateRandomItems ($items, $num) {
    shuffle($items); // 配列の要素をシャッフルする
    $generateItems = array_slice($items, 0, $num); // 指定数の要素を取り出す
    return $generateItems;
}

$array = ['a', 'b', 'c', 'd', 'e'];

// 4つランダムで取得したい場合
$itemsA = generateRandomItems($array, 4);

// 第二引数に配列の数以上指定すると、配列の数だけ取得される
$itemsB = generateRandomItems($array, 6);