php抽奖算法,PHP实现大转盘抽奖算法(代码实例)
本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法,希望对大家学习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
$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 jquery转盘抽奖,php+jqueryRotate实现大转盘抽奖
data.php文件 //定义抽奖项 $prize_arr=array( '0' => array('id'=>1,'min'=>137,'max'=>178,'prize'= ...
- html做一个抽奖游戏,js实现大转盘抽奖游戏实例
/p> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> js抽奖 td{width:50px;he ...
- php 打乱数组顺序_PHP实现大转盘抽奖算法
php中文网最新课程 每日17点准时技术干货分享 本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法,希望对大家学习PHP抽奖有所帮助. 流程: 1.拼装奖项数组: 2.计算概率: 3.返回中 ...
- 幸运大转盘抽奖(前端)
采用Lottery.js插件, 无依赖, 简单易用(复制粘贴就能用) 效果图(可自己写算法定义概率,可自己定义奖项数量和名称) html <!DOCTYPE html> <html ...
- html转盘游戏,html5大转盘抽奖实例源码(基于vue.js)
[实例简介] [调试步骤] # 安装依赖 npm install # 开启本地服务器localhost:8088 npm run dev # 发布环境 npm run build #然后静待你的浏览器 ...
- Jquery写的幸运大转盘抽奖实例,用asp.net处理的服务器逻辑,附源码下载
[实例简介] 该幸运大转盘抽奖实例已实现服务器端的业务逻辑代码,稍加改动就可以应用实际了 文件:590m.com/f/25127180-488779229-66bbf7(访问密码:551685) [实 ...
- PHP+AJAX开发幸运大转盘抽奖
PHP+AJAX开发幸运大转盘抽奖 PHP+AJAX开发幸运大转盘抽奖,通过奖品库存.中奖次数来计算中奖概率 奖品设置 1 $prizes = array( 2 0 => array( 3 &q ...
- js框架jquery实现的幸运大转盘抽奖程序代码,兼容多种浏览器(Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Chrome)
博客目录 js框架jquery实现的幸运大转盘抽奖程序代码 实现功能截图 系统功能 使用技术 代码 写在最后 js框架jquery实现的幸运大转盘抽奖程序代码 本系统实现了一个幸运转盘抽奖,兼容多种浏 ...
- cocos2dx 圆盘抽奖_cocos2d编写的类似幸运大转盘抽奖源码
压缩包内容概览: cocos2d编写的类似幸运大转盘抽奖源码-帮你选择 ; 随机 ; 程序委托 ; 背高清 ; 背 ipad ; 返回 ; 默认 ; 默认@2x ; 图标-72 ; 图标@2x ; 我 ...
最新文章
- js经典校验之注册与登录校验
- Matlab提取矩阵数据
- hahahahahah
- 在实际开发中碰到的小问题,保存数据时提示:对象必须实现 IConvertible
- oracle 12c dg新特性,Oracle 12c DG新特性---一键switchover
- 15分钟从零开始搭建支持10w+用户的生产环境(四)
- .流程引擎对接的三种方式_02
- LeetCode--62.不同路径(排列组合,动态规划)
- canvas 2.0
- 基于新浪微博api的微博分享功能实现
- java版flashplayer下载安装_mac版flash player
- Selenium简单的163邮箱登录实例
- 应用之星教你制作高下载量的App
- 刚性PCB和柔性PCB的区别
- matlab绘图——根据方程组绘图和心形图绘制
- 周转时间 平均周转时间 带权周转时间 平均带权周转时间
- PPTPDF文件转换成图片上传OSS
- 科大星云诗社动态20210130
- 轻松获得3D打印和2D定制产品及相关设备/展会/创业等最新资讯
- Python numpy.atleast_1d函数方法的使用
热门文章
- 可以与eclipse媲美的开源油藏数值模拟器OPM/Flow的安装及使用
- 速卖通运营之--如何通过搜索快速提升店铺流量
- css3滤镜属性filter实现网页变黑白效果
- Tigase下载安装(Linxu+Window版本)实现教程+配置聊天记录入数据库
- linux上面跑lvgl GUI简单实例
- 心理健康APP开发解决方案
- 哔哩哔哩,除了二次元的其他东西,包爽
- gooooood bye 2014---gooooooooooood luck 2015
- codeblocks卸载后再重装还是老样子
- 流感病毒爆发,科技带来希望?谷歌成功预测H1N1流感病毒