Home > PHP

配列をシャッフルする

配列をランダムにシャッフルしたい場合ってありませんか?当初私も乱数を発生させて、しかもその乱数がユニークになるようにってな感じでかなりまどろっこしいスクリプトを書いていましたが、そんな必要全然ありませんでした。配列をシャッフルする関数がデフォルトであったんですね。書き方は、

shuffle (<配列>);

だけです。foreachして洗い出すとバラバラになっています。

<?
$i = 0;
$temp_number = array();
while ($i < 25) {
    array_push ($temp_number, $i);
    $i++;
}
shuffle($temp_number);
foreach ($temp_number as $k=>$v) {
    print "$v<br />";
}
?>

 注意点といえば、配列をまぜこぜにするわけですが、配列のキーと値のペアをバラバラにするということです。foreachで書き出した時にはキーの値は0から順番に出現します。しかし、キーが0だった変数の内容(値)が他のものと入れ替わっているということです。つまりはシャッフルされているわけです。






プロフィール



  • Name :: 山上オサム ♂(37)
  • Hobby :: 武術
  • Work :: Web Designer