特定の範囲の数値からランダムにいくつか取り出して配列を作る方法です。
「range」「shuffle」「array_slice」を使用して下記のように記述することで特定の範囲(サンプルは1~100)の数値からランダムにいくつか(サンプルは5つ)取り出して配列にすることが出来ます。
<?php
$i = range(1,100);
shuffle($i);
$array = array_slice($i, 0, 5);
var_dump($array);
?>
» 実行結果
リロードすると数値が変わります。
range
「range」は第一引数から第二引数の範囲の配列を作成します。第三引数を指定しない場合は1ずつ、第三引数を指定すると、指定した間隔で配列を作成します。
<?php
$x = range(0, 10); // 0~10の配列を作成します
$y = range(0, 100, 10); // 0~100を10ずつに区切って10,20,30…100の配列を作成します
var_dump($x);
echo "<br>";
var_dump($y);
?>
「range」は英字にも使えます。
<?php
$x = range("a", "d");
var_dump($x);
?>
shuffle
「shuffle」は配列の順番をランダムに変更します。
<?php
$x = range(1, 10); // 1~10の配列を作成
shuffle($x); // 配列をランダムに並び替え
var_dump($x);
?>
» 実行結果
リロードすると順番がランダムに変わります。
array_slice
「array_slice」は第一引数の配列から、第二引数を開始位置として、第三引数の数値分の配列を返します。
<?php
$i = range(1,100); // 1~100の配列を作成
shuffle($i); // 配列をランダムに並び替え
$array = array_slice($i, 0, 5); // ランダムに並び替えられた配列の0番めから5つを$arrayに代入
var_dump($array);
?>
» 実行結果
リロードすると数値が変わります。