抽奖模块设计
思路
管理员在后台设置奖品的中奖概率,未中奖概率 = 1-中奖概率之和
。
伪随机数生成函数用于生成0-1之间的随机数,参考了官方手册中mt_getrandmax
示例。
http://php.net/manual/zh/function.mt-getrandmax.php
- 处理奖项数组,增加未中奖选项的概率
- 获得伪随机数
- 遍历奖项数据
- 通过奖项的获奖概率,设置坐标的左右区间
- 比较随机数是否落在区间
代码
<?php
function randomFloat($min = 0, $max = 1) {
return $min + mt_rand() / mt_getrandmax() * ($max - $min);
}
$lottery_arr = [
['name'=>'非洲5日游',