PHP实现大转盘抽奖算法(代码实例)
导读:收集整理的这篇文章主要介绍了PHP实现大转盘抽奖算法(代码实例),觉得挺不错的,现在分享给大家,也给大家做个参考。本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法,希望对大家学习PHP抽奖有所帮助。@H_304_13@流程:1.拼...
收集整理的这篇文章主要介绍了PHP实现大转盘抽奖算法(代码实例),觉得挺不错的,现在分享给大家,也给大家做个参考。本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法,希望对大家学习PHP抽奖有所帮助。
@H_304_13@流程:
1.拼装奖项数组;
2.计算概率;
3.返回中奖情况。
代码如下:中奖概率 ' v ' 可以在后台设置,传到此方法中,注意传整数
function get_gift(){
//拼装奖项数组 // 奖项id,奖品,概率 $PRize_arr = array( '0' =>
array('id'=>
1,'prize'=>
'平板电脑','v'=>
0), '1' =>
array('id'=>
2,'prize'=>
'数码相机','v'=>
0), '2' =>
array('id'=>
3,'prize'=>
'音箱设备','v'=>
0), '3' =>
array('id'=>
4,'prize'=>
'4G优盘','v'=>
5), '4' =>
array('id'=>
5,'prize'=>
'10Q币','v'=>
0), '5' =>
array('id'=>
6,'prize'=>
'空奖','v'=>
5), );
foreach ($prize_arr as $key =>
$val) {
$arr[$val['id']] = $val['v'];
//概率数组 }
$rid = $this->
get_rand($arr);
//根据概率获取奖项id $res['yes'] = $prize_arr[$rid-1]['prize'];
//中奖项 unset($prize_arr[$rid-1]);
//将中奖项从数组中剔除,剩下未中奖项 shuffle($prize_arr);
//打乱数组顺序 for($i=0;
$icount($prize_arr);
$i++){
$pr[] = $prize_arr[$i]['prize'];
//未中奖项数组 }
$res['no'] = $pr;
// var_dump($res);
if($res['yes']!='空奖'){
$result['status']=1;
$result['name']=$res['yes'];
}
else{
$result['status']=-1;
$result['msg']=$res['yes'];
}
//return $result;
VAR_dump($result);
}
//计算中奖概率 function get_rand($proArr) {
$result = '';
//概率数组的总概率精度 $proSum = array_sum($proArr);
// var_dump($proSum);
//概率数组循环 foreach ($proArr as $key =>
$proCur) {
$randNum = mt_rand(1, $proSum);
//返回随机整数 if ($randNum = $proCur) {
$result = $key;
break;
}
else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
更多相关php知识,请访问php教程!
以上就是PHP实现大转盘抽奖算法(代码实例)的详细内容,更多请关注其它相关文章!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: PHP实现大转盘抽奖算法(代码实例)
本文地址: https://pptw.com/jishu/596131.html
