Search
  1. array_rand〔配列から1つ以上の要素をランダムに取得〕
  2. 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($input2);
//ランダムの為、結果は一例です。
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
?>

関連コンテンツ

Q. このサイトの情報はお役に立ちましたでしょうか?

投票する 投票結果を見る

管理人に【web拍手】を送るweb拍手(1行メッセージも送れます♪)

pagetop