php实现随机中奖(转盘抽奖)
来源:互联网 发布:国家统计局数据下载 编辑:程序博客网 时间:2024/05/17 03:52
通过后台进行设置奖项的概率,数量,实现随机抽奖的效果。下面只是用了一个示例数据进行模拟
/** * 随机中奖 * * 1、将奖品列表传入 * 2、遍历奖品列表数据,获取其id,概率 * 3、计算概率,随机选出id * 4、根据id,返回信息 * */ public function prize(){ $res = [ ['prize_class'=>0,'prize_name'=>'谢谢参与','prize_rank'=>1000], ['prize_class'=>1,'prize_name'=>'三等奖','prize_rank'=>100], ['prize_class'=>2,'prize_name'=>'二等奖','prize_rank'=>10], ['prize_class'=>3,'prize_name'=>'一等奖','prize_rank'=>1], ]; $finds = ['prize_class','prize_name','prize_rank']; foreach ($res as $key=>$val){ //array(4) { [0]=> int(1000) [1]=> int(100) [2]=> int(10) [3]=> int(1) } $arr[$val[$finds[0]]] = $val[$finds[2]]; } $id = $this->get_rand($arr); $prizeRes = $res[$id]; var_dump($prizeRes); } /** * 计算概率,返回id */ public function get_rand($arr){ $proSum = array_sum($arr);//概率总和 if($proSum === 0 ){ return $proSum; } foreach ($arr as $key=>$val){ $randNum = mt_rand(1, $proSum); if ($randNum <= $val) { $result = $key; break; } else { $proSum -= $val; } } unset($arr); return $result; }
0 0
- php实现随机中奖(转盘抽奖)
- 中奖概率算法(可用于刮刮乐、转盘抽奖)
- PHP+jQuery实现翻板抽奖(中奖概率算法)
- Android抽奖(大转盘,随机)
- PHP + AJAX实现幸运大转盘抽奖
- php+jQuery实现网络转盘抽奖
- php+jqueryRotate实现大转盘抽奖
- JQ+Php实现抽奖 大转盘
- PHP + AJAX实现幸运转盘抽奖
- 【项目实战】——Java根据奖品权重计算中奖概率实现抽奖(适用于砸金蛋、大转盘等抽奖活动)
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
- php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法
- java实现转盘抽奖;
- SurfaceView 实现 转盘抽奖
- SSL证书
- 基础篇之JavaSE基础复习< 二 >
- centos 下刚安装完MySQL就出现密码错误 Access denied for user 'root'
- cocos2dx3.12 CCTableView优化和使用
- WGAN介绍
- php实现随机中奖(转盘抽奖)
- BZOJ P1566[NOI2009]管道取珠
- LocalBroadcastManager源码分析
- 20 行代码极速为 App 加上聊天功能
- Ambari-server源码分析:核心类agent.rest.AgentResource
- 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
- SpringMvc+Mybatis+Redis框架
- Nginx源码剖析-模块以及部分初始化
- Java 并发编程:volatile的使用及其原理