質問: array_rand($val, "任意の数"); ``` このようにすれば、「A」は「36%」の確率でデータを取得できると思います。 そして、ランダムで取得したデータをデータベースから呼び出し、表示すればよいと考えています。 ですが、このやり方以外に良い案があればと思い、質問させていただきました。 宜しくお願いします。
回答: 口数での抽選と同じ考えでいけるかと。 このサイトの回答では、2つのやり方がありますが、2つ目のナンバーリング法がコード化しやすいでしょうね。 1~100の範囲(実際には各ページに割り当てている確率の合計)から乱数を決定。 質問例で言えば、1~36だったらA、37~57ならB、という具合に振り分ければ良いと思います。 ``` 36, "B" => 21, "C" => 18, "D" => 25]; $sum = 0; foreach($pages as $k => $v){ $sum = $sum + $v; $num[$k] = $sum; } $r = mt_rand(1, $sum); foreach($num as $k => $v){ if($r <= $v){ $page = $k; break; } } echo $page; ?> ```