首页 > 语言 > PHP > 正文

PHP实现转盘抽奖算法分享

2024-05-05 00:03:26
字体:
来源:转载
供稿:网友

本文实例为大家分享了PHP实现转盘抽奖算法的具体代码,供大家参考,具体内容如下

流程:

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;$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转盘抽奖算法,php转盘抽奖,php,抽奖算法php转盘抽奖算法,php转盘抽奖,php,抽奖算法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选