ここではPHP rand();関数に確立を設定するサンプルソースを記載しています。
サンプルソース
<?php $configs = array( array( 'probability' => 60, 'message' => '60%の確率で表示されます。' ), array( 'probability' => 30, 'message' => '30%の確率で表示されます。' ), array( 'probability' => 10, 'message' => '10%の確率で表示されます。' ) ); $count = count($configs); $max = 0; for ($i = 0; $i < $count; $i++) { $max += $configs[$i]['probability']; } $rand = rand(1, $max); $from = 0; $to = 0; $result = ''; for ($i = 0; $i < $count; $i++) { $from = $to; $to += $configs[$i]['probability']; if ($from < $rand && $rand <= $to) { $result = $configs[$i]['message']; } } echo $result;
解説
probabilityの数値が大きいものを高確率で出しています。
数値の合計が100を超えたとしても数値の大きいものが出力されます。