/**
* 抽奖函数
* @param $prizes 奖品信息(二维数组)
* @return mixed|string
*/
function lotteryDraw($prizes)
{
// 计算总概率
$totalProbability = array_sum(array_column($prizes, 'lv'));
// 生成一个随机数作为抽奖结果
$randomNumber = mt_rand(1, $totalProbability);
// 根据随机数选择中奖项
foreach ($prizes as $prize) {
if ($randomNumber <= $prize['lv']) {
// 判断奖品数量是否足够
if ($prize['num'] > 0) {
// 中奖,返回奖品名称
return $prize;
} else {
// 奖品数量不足,重新抽奖
return '再接再厉,下次一定!';
}
} else {
$randomNumber -= $prize['lv'];
}
}
unset ($prizes);
// 所有奖品数量都为0,无法中奖
return '很遗憾,您未能中奖!';
}
// 示例用法
$rate = array(
array(
"id" => 1,//奖品id
"prize" => "一等奖",//奖品名称
"lv" => 1,//奖品中奖概率
"num" => 5,//奖品数量
),
array(
"id" => 2,
"prize" => "二等奖",
"lv" => 5,
"num" => 20,
),
array(
"id" => 3,
"prize" => "三等奖",
"lv" => 11,
"num" => 30,
),
array(
"id" => 4,
"prize" => "四等奖",
"lv" => 86,
"num" => 40,
)
);
$result = lotteryDraw($rate);
echo $result;
php抽奖函数可以根据设置的抽奖率抽到一等奖 二等奖 三等奖 四等奖 谢谢参与2023-09-24
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 我校篮球队、排球队在喻政权、邓煜星、刘智郅、郭志泉和刘志鹏老师的带领下,参加株洲市第十五届“文明风采”球类比赛篮球...
- 2017年12月1日至3日第四届全国高校移动互联网应用开发创新大赛全国总决赛在中国地质大学(武汉)举行。经过激烈角...
- 电商三创赛,全称全国大学生电子商务“创新、创意及创业”挑战赛,是由教育部高等学校电子商务专业教学指导委员会,面向全...