PHP 抽奖demo
来源:互联网 发布:2015年江苏省旅游数据 编辑:程序博客网 时间:2024/06/05 06:14
PHP 抽奖demo
<?php/** * 根据概率获取奖项ID * @param proArr array 以奖品id为key,概率为value的数组 * @return $result 中奖奖品id */function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result; } //1. 从数据库读奖品概率$prize_arr = array( '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1), '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), '4' => array('id'=>5,'prize'=>'10Q币','v'=>22), '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50), ); //2. 提取奖品ID对应的概率数组 foreach ($prize_arr as $key => $val) { $arr[$val['id']] = $val['v']; } //["1"=>1,"2"=>5,"3"=>10,"4"=>12,"5"=>22,"6"=>50]//3. 获取是否中奖 $rid = 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[$id]['prize']; } $res['no'] = $pr; echo json_encode($res);?>
阅读全文
0 0
- PHP 抽奖demo
- PHP转盘抽奖接口demo
- 抽奖demo
- php 抽奖
- Egret)Demo - 抽奖
- 抽奖系统Demo
- 简单的qml抽奖demo
- php 关于抽奖算法
- PHP抽奖小程序
- php 抽奖概率算法
- PHP 抽奖小程序
- PHP抽奖函数
- php年会抽奖
- PHP翻转抽奖程序
- PHP翻转抽奖程序
- php实现翻版抽奖
- PHP抽奖算法
- php 抽奖类的
- 专业工具软件PCB板打印说明
- npm与cnpm
- 算法谜题65 猜密码
- java 方法重载
- javax.el.PropertyNotFoundException: Property 'fullName' not found on type java.lang.String
- PHP 抽奖demo
- [TensorFlow 学习笔记-02]配置PyCharm IDE环境
- 嵌入式系统学习——STM32之串口通信UART
- mysql输入密码
- 项目立论
- 数据结构之双向循环链表
- ElasticSearch使用入门-增删查改
- 嵌入式视频方案学习第六篇——视频输入
- Java 事物的概念以及延伸