• ベストアンサー

特定の数の中から特定の数をランダムに表示したい

phpあまり疎いのですが、質問させてください。 配列 $hairetu は20個の配列の値を持っています。 echo $hairetu[19]; echo $hairetu[13]; とかやると、それぞれ値が取れます。 この20個の中から5つをロードの度にランダムに抽出して表示したいです。 foreach(range(0,4) as $i){ echo $hairetu[$i]; } これだと毎回同じで意図したものではないです。 そもそもこのアプローチから違うのかもしれませんが、 ご教示いただければ有難いです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.2

array_randを使うのが何よりも簡単です。 PHP Manual - array_rand http://www.php.net/manual/ja/function.array-rand.php foreach (array_rand($hairetu, 5) as $i) { echo $hairetu[$i]; }

Search_tmp
質問者

お礼

ありがとうございます! 記述がシンプルでわかりやすいです! またの機会にはよろしくお願いいたします!

その他の回答 (1)

  • freetaka
  • ベストアンサー率53% (106/197)
回答No.1

普通にランダムに抽出するだけであれば $cnt = 0; while ($cnt < 5){ echo $hairetu[rand(0,19)]."<br>"; $cnt++; } な感じでいけますが 乱数の値が重複してしまうので 同じ内容が表示されてしまいます それでいい場合は上記でいけます 重複しないようにする常套手段としては shuffle関数を使用します 方法は //0~19までの数値をいれた配列を用意する $rnd = range(0,19); //配列の中身をシャッフルする shuffle($rnd); $cnt = 0; while ($cnt < 5){ //シャッフルした配列を乱数として利用 echo $hairetu[$rnd[$cnt]]."<br>"; $cnt++; } という感じになります

Search_tmp
質問者

お礼

ありがとうございます! 解説が丁寧で不得手な私にも理解できました! 記述方法の勉強にもなりました! またの機会にはよろしくお願いいたします!

関連するQ&A