PlusOne Blog

【PHP】確立を指定した抽選ロジック

PHP

今回は、確立を指定した抽選のコンテンツを作成したので、それの備忘録。
 

 

  function array_rand_weighted($entries){
   $sum  = array_sum($entries);
   $rand = rand(1, $sum);

   foreach($entries as $key => $weight){
     if (($sum -= $weight) < $rand) return $key;
     }
   }

  // 抽選候補となる配列
  // キーが要素で、値が確立になる。
  $entries = array(
   "1等"    => 5,
   "ハズレ"  => 95,
  );

  // 抽選(こんな感じで使用する)
  $result_key = array_rand_weighted($entries);
  if ($result_key == "1等") {
   echo '1等です。';
  } else {
   echo 'ハズレです。';
  }

 
array_sum($array)
・配列の値の合計を計算します。
 
round(A,B)
・整数A~Bの範囲で乱数を発生します。
 
foreach($entries as $key => $weight){
}
・連想配列を使用したforeachi
 $entries の連想配列。各配列を$keyで取り出し、その$keyに相当する値を$weightとして処理を繰り返す。
 
if (($sum -= $weight) < $rand) return $key;
・配列の合計値より、各配列の値を引いていって、乱数より小さい値になったときに、その配列の$keyを返す。
 

 

この記事を読む
記事一覧に戻る