本文介绍了“php如何实现大转盘功能”的知识。很多人在实际案件操作中都会遇到这样的困难。接下来,让边肖带领大家学习如何应对这些情况!希望大家认真阅读,学点东西!
php大转盘功能的实现方法:1。组装奖励数组,如“$ prize _ arr=array(.)";2.计算获胜概率;3.把胜利的形势还给我。
本文的操作环境:windows7系统,PHP7.1,DELL G3计算机
php 怎么实现大转盘功能?
大转盘PHP抽奖算法的实现
流程:
1.组装奖品阵列,2。计算概率,3。归还胜利的局面。
代码如下:中奖概率‘v’可以在后台设置,要传递给这个方法,注意传递整数。
function get _ gift(){ 0
//组装奖励阵列
//奖品id、奖品、概率
$prize_arr=array(
' 0 '=数组(' id'=1,'奖品'='平板',' v'=0),
1 '=数组(' id'=2,'奖品'='数码相机',' v'=0),
2 '=数组(' id'=3,'奖品'='扬声器设备',' v'=0),
3 '=数组(' id'=4,'奖品'=' 4G盘',' v'=5),
4 '=数组(' id'=5,'奖品'='10Q硬币',' v'=0),
5 '=数组(' id'=6,'奖品'='空奖品',' v'=5),
);
foreach($ price _ arras $ key=$ val){ 0
$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;$i<count($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如何实现大转盘功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/95840.html