基于PHP实现简单的随机抽奖小程序


Posted in PHP onJanuary 05, 2016

一个抽奖小程序,概论可控,也可某个奖品在前端显示,而程序中根本不可能获得!把所有的概率x10后相加起来,新数组中每项的值等于它前几个的和加上它本身。

然后随即生成一个0到最大数之间的一个数,通过循环查看它属于那个区间,返回该区间的key。

代码如下

$prize = array(
1 => 3.5, //3.5%机率
2 => 2.5, 
3 => 6, 
4 => 2, 
5 => 42, //42%机率
6 => 36, 
7 => 2, 
8 => 4, 
9 => 2
);
//最后确认相加等于100
$prizeList = array(
1 => array('小仙子'), 
2 => array('5Q币'), 
3 => array('38888游戏币'), 
4 => array('88888游戏币'), 
5 => array('谢谢参与!'), 
6 => array('欢迎下次再来!'), 
7 => array('10Q币'), 
8 => array('888银元宝(绑定)'), 
9 => array('随机高级坐骑(绑定)')
);
//unset($prize[7]); 直接把10Q这个奖品去掉
$times = 10;
$max = 0;
foreach ($prize as $k => $v)
{
$max = $v * $times + $max;
$row['v'] = $max;
$row['k'] = $k;
$prizeZone[] = $row;
}
$max--; //临界值
$rand = mt_rand(0, $max);
$zone = 1;
foreach ($prizeZone as $k => $v)
{
if ($rand >= $v['v'])
{
if ($rand >= $prizeZone[$k + 1]['v'])
{
continue;
}
else
{
$zone = $prizeZone[$k + 1]['k'];
break;
}
}
$zone = $v['k'];
break;
}
print_r($prizeList[$zone][0]);

基于php实现简单的抽奖小程序代码就给大家写这么多,不过都是核心代码,希望对大家学习工作有所帮助。

PHP 相关文章推荐
CakePHP去除默认显示的标题及图标的方法
Oct 22 PHP
PHP 检查扩展库或函数是否可用的代码
Apr 06 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
三种php连接access数据库方法
Nov 11 PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 PHP
phalcon框架使用指南
Feb 23 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
Mar 21 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
php json中文编码为null的解决办法
Dec 14 PHP
PDO::getAvailableDrivers讲解
Jan 28 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 #PHP
使用PHP实现微信摇一摇周边红包
Jan 04 #PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 #PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 #PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 #PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 #PHP
大家须知简单的php性能优化注意点
Jan 04 #PHP
You might like
php 文件上传类代码
2011/08/06 PHP
开启PHP Static 关键字之旅模式
2015/11/13 PHP
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
jQuery 重复加载错误以及修复方法
2014/12/16 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
Vue CLI 3搭建vue+vuex最全分析(推荐)
2018/09/27 Javascript
nodejs log4js 使用详解
2019/05/31 NodeJs
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
webpack是如何实现模块化加载的方法
2019/11/06 Javascript
Openlayers绘制地图标注
2020/09/28 Javascript
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
Python 描述符(Descriptor)入门
2016/11/20 Python
python机器学习之神经网络(二)
2017/12/20 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
Django配置celery(非djcelery)执行异步任务和定时任务
2018/07/16 Python
Python常见内置高效率函数用法示例
2018/07/31 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
法国家具及室内配件店:home24
2017/01/21 全球购物
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
高二地理教学反思
2014/01/24 职场文书
音乐器材管理制度
2014/01/31 职场文书
八年级美术教学反思
2014/02/02 职场文书
公司总经理助理岗位职责
2014/07/09 职场文书
创优争先心得体会
2014/09/11 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis
关于Javascript闭包与应用的详解
2021/04/22 Javascript
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
MySQL8.0的WITH查询详情
2021/08/30 MySQL
MySQL时区造成时差问题
2022/04/13 MySQL