php mysql随机抽奖源码_PHP随机按百分比抽奖

本文介绍了一个基于PHP实现的抽奖程序核心代码。该程序通过定义不同的奖品及其对应的中奖概率来随机抽取奖品。首先创建了一个包含多种奖品及其对应概率的数组,然后通过自定义函数getRand()实现了按概率抽取奖品的功能。
摘要由CSDN通过智能技术生成

e3a495b0cddad377f5e4a3d8d5b3caa4.png

//计算中奖概率

function getRand($proArr){

$rs = '';//中奖结果

$proSum = array_sum($proArr);//概率数组的总概率精度

//概率数组循环

foreach ($proArr as $key => $proCur) {

$randNum = mt_rand(1, $proSum);

if ($randNum <= $proCur) {

$rs = $key;

break;

} else {

$proSum -= $proCur;

}

}

unset($proArr);

return $rs;

}

$prize_arr = array(

'0' => array('id' => 10, 'title' => 'iphone5s', 'v' => 5),

'1' => array('id' => 20, 'title' => '联系笔记本', 'v' => 10),

'2' => array('id' => 30, 'title' => '音箱设备', 'v' => 20),

'3' => array('id' => 40, 'title' => '30GU盘', 'v' => 30),

'4' => array('id' => 50, 'title' => '话费50元', 'v' => 10),

'5' => array('id' => 60, 'title' => 'iphone6s', 'v' => 15),

'6' => array('id' => 70, 'title' => '谢谢,继续加油哦!~', 'v' => 10),

);

$arr=array();

foreach ($prize_arr as $key => $val) {

$arr[$key+1] = $val['v'];

}

echo '

'; 
 

print_r($prize_arr);

print_r($arr);

//exit();

echo $prize_id = getRand($arr); //根据概率获取奖品id

//$data['msg'] = ($prize_id == 7) ? 0 : 1; //如果为0则没中

echo $data['prize_title'] = $prize_arr[$prize_id - 1]['title']; //中奖奖品

//echo json_encode($data);//以json数组返回给前端

exit();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值