本文的例子分享了PHP实现转盘抽奖算法的具体代码,供大家参考。具体内容如下
流程:
1.组装奖励阵列
2.计算概率
3.回到胜利的局面
代码如下:
获胜概率' v '可以在后台设置并传输到该方法。注意传递整数
函数get_gift(){ //汇编奖励数组//奖励id,奖品,概率$ price _ arr=array(' 0 '=array(' id '=1 ',' prize '=' tablet ',' v'=0 ',' 1'=array ('id') 2'=array('id'=3 ',' prize '=' speaker equipment ',' v'=0),' 3'=array ('id'=4 ',' prize'=' 4g USB闪存盘',' v'=5 ',' 4'=array(,foreach($ prize _ arr as $ key=$ val){ }//概率数组} $ rid=$ this-get _ rand($ arr);//根据概率获得奖励id $ RES[' yes ']=$ prize _ arr[$ rid-1][' prize '];//中文奖品unset($ prize _ arr[$ rid-1]);//从数组中移除获胜的奖品,留下未成功的奖品洗牌($ price _ arr);//对($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 '];}//返回$ resultvar _ dump($ result);}//计算获胜概率函数get _ rand($ proar){ $ result=' ';//概率数组的总概率精度$ proSum=array _ sum($ proArr);//var _ dump($ PROsum);//概率数组循环foreach($ proarras $ key=$ procur){ $ rand num=mt _ rand(1,$ prosum);//如果($ randnum=$ procur) {$ result=$ key,则返回随机整数;打破;} else { $ PROsum-=$ ProCur;} } unset($ ProArr);返回$ result}渲染:
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。