配列配列関数(ランダム)
- array_rand〔配列から1つ以上の要素をランダムに取得〕
- shuffle〔配列をシャッフルする〕
array_rand
配列から1つ以上の要素をランダムに取得
unknown
mixed array_rand ( array $配列[, int $取得する数] )
配列からランダムに値を取得します。取得する数を省略した場合は、1つだけ取り出します。
値を1つだけ取得する場合は、ランダムなキーを返します。
取得する数に2以上の数値を指定した場合は、ランダムなキーの配列を返します。
<?
$input[a] = "aaa";
$input[b] = "bbb";
$input[c] = "ccc";
$input[d] = "ddd";
$input[e] = "eee";
$rand_keys = array_rand($input, 2);
//ランダムの為、結果は一例です。
echo $input[$rand_keys[0]]; //eee
echo $input[$rand_keys[1]]; //aaa
print_r($rand_keys); //Array(e,a);
?>
<?
//「取得する数」を省略すると1つだけ取得する(デフォルト)
$input[a] = "aaa";
$input[b] = "bbb";
$input[c] = "ccc";
$input[d] = "ddd";
$input[e] = "eee";
$rand_keys = array_rand($input);
//ランダムの為、結果は一例です。
echo $input[$rand_keys]; //bbb
echo $rand_keys; //b
?>
shuffle
配列をシャッフルする
unknown
bool shuffle ( array &$配列 )
要素の順番をランダムにするために配列をシャッフルします。 キーと値の関係は保持されません。
この関数にシードを与えるために、srand()関数を使用する必要がありましたが、PHP4.2.0以降はこの処理が自動実行されるため不要です。
<?
$numbers = array("a","b","c");
//srand((float) microtime()*1000000); ←PHP4.2.0以降は不要
shuffle($numbers);
print_r($numbers); //例 Array("b","a","c");
?>
<?
#配列をシャッフルした結果を、カンマ区切りの文字列として返す
function ShuffleToStr($array){
//srand((float) microtime()*1000000); ←PHP4.2.0以降は不要
shuffle($array);
return implode(",", $array);
}
$array = array("a","b","c");
$strShuf = ShuffleToStr($array);
echo $strShuf; //例 b,a,c
?>