最近做的小程序有一个抽奖功能,这里记录下实现抽奖功能的具体流程

前提:

有一组奖品数据如下

id 奖品(prize) 概率(rate) 数量(num) 已抽数量(prize_num)

1 一等奖 10% 10 0

2 二等奖 15% 20 0

3 三等奖 35% 50 0

根据如上实现抽奖如下($prizes表示上面表格数据)

//进行抽奖

$data = [];

foreach ($prizes as $prize) {

if (($prize['num'] - $prize['prize_num']) > 0) {

$data[$prize['id']] = 100 * ($prize['rate']);

}

};

//获取所有奖品的总概率

$sum = array_sum($data);

$countSum = 100;

if ($sum < $countSum) {

$data[0] = $countSum - $sum;//不满100%,表示没有抽取到奖品

}

$result = 0;

//概率数组总精度

//概率数组循环

foreach ($data as $key => $value) {

$randNum = mt_rand(1, $countSum);

if ($randNum <= $value) {

$result = $key;

break;

} else {

$countSum -= $value;

}

}

unset($arr);

echo $result;//抽到的ID值,0表示没有抽到奖品

根据如上就可以实现抽奖功能

作者:huaweichenai

php jq实现抽奖,php 实现抽奖功能相关推荐

  1. java抽奖_Java实现抽奖功能

    需求简介 新项目有一个类似王者荣耀抽奖的功能:抽取花费积分,积累幸运值,每阶段幸运值可以抽取到不同的奖品,幸运值集满时,必得稀有道具 功能实现预期:建立一个抽奖池(抽奖池级别根据type区分),奖品在 ...

  2. php jq实现抽奖,jquery实现抽奖系统

    闲来无事做了一个抽奖的系统: 抽奖系统 #box{ width:450px; margin:0 auto; } .show{ width:100px; height:55px; text-align: ...

  3. html+抽奖游戏,九宫格抽奖HTML+JS版

    div{ margin: 100px auto 0px; // 居中 width:500px; height:250px; border:3px solid black; // 边框 } li{ wi ...

  4. java 9宫格抽奖_九宫格抽奖HTML+JS版

    div{ margin: 100px auto 0px; // 居中 width:500px; height:250px; border:3px solid black; // 边框 } li{ wi ...

  5. 摇一摇抽奖 php,利用HTML5的devicemotion事件实现手机摇一摇抽奖,年会抽奖

    摇一摇JS脚本逻辑: 接下来是移动端JS脚本逻辑的实现,摇一摇的实现需借助html5新增的devicemotion事件,获取设备在位置和方向上的改变速度的相关信息,该事件的基本使用如下:if (win ...

  6. 苹果手机html5摇一摇游戏戏码,利用HTML5的devicemotion事件实现手机摇一摇抽奖,年会抽奖,html5devicemotion...

    利用HTML5的devicemotion事件实现手机摇一摇抽奖,年会抽奖,html5devicemotion 摇一摇JS脚本逻辑: 接下来是移动端JS脚本逻辑的实现,摇一摇的实现需借助html5新增的 ...

  7. 你遇到过的测试难题(4)活动抽奖转盘九宫格抽奖测试用例测试点

    你遇到过的测试难题(4)关于抽奖活动概率测试 业务背景 测试计划 测试准备 测试关注点 测试总结 时间测试: 中奖记录: 中奖概率: 性能测试: 安全性测试: 时间场景: 动效场景: 概率场景: 抽奖 ...

  8. jquery php 抽奖,jquery实现抽奖系统

    闲来无事做了一个抽奖的系统: 抽奖系统 #box{ width:450px; margin:0 auto; } .show{ width:100px; height:55px; text-align: ...

  9. PHP抽奖小程序/微信红包封面抽奖小程序/抽奖小程序开源源码

    PHP抽奖小程序源码,微信红包封面抽奖小程序,全开源.带流量主(需要自行替换代码),独立后台,亲测完美可用. 下载 PHP抽奖小程序/微信红包封面抽奖小程序/抽奖小程序开源源码 亲测截图:

  10. 天天福利抽奖-JAVA概率抽奖

    搞了个抽奖活动,中大奖中的简直爽歪歪? 不过还是要偷偷告诉你:抽奖是有内幕的~~~(不能让领导看到,会被打?) 总在各种app上看到转盘抽奖,翻牌抽奖,每次抱着中最大奖的心,换来的都是未中奖的提示,可 ...

最新文章

  1. 受益一生的15个学习习惯
  2. mysql5.7 too many_Mysql 错误too many connections解决方案
  3. Burrard 大桥
  4. WM有约II(二):持续改进
  5. promise中调用ajax
  6. ubuntu16.04 Linux+xfce4的文件夹出现两种背景颜色+文件夹中右键打开终端失灵了.
  7. 程序员职业生涯的11个阶段程序人生
  8. Redis 持久化——AOF
  9. centos7 安装mysql_Centos7安装最新版本的MySQL
  10. GDB调试带参数argc argv的程序
  11. 提到强化学习只知道AlphaGo?其实,RL在工业界还有这些应用
  12. Spring学习之AOP
  13. Mac隐藏技巧:右键点按,在访达中玩出点新花样
  14. 分销系统之项目架构(第一篇)
  15. 淘宝运营 DSR评分太低的影响 用补单的方法具体操作步骤,提高DSR评分
  16. linux中文是楷体,Linux中安装宋体楷体
  17. 波士顿学院计算机科学专业,波士顿学院计算机专业好吗?_托普仕留学
  18. c语言程序设计题目湖南大学,湖南大学C语言期末考试样卷
  19. Java实现 四舍五入取整到百位 四舍五入取整到千位 数字取整到千位 数字取值到千位 数字取整到百位 数字取值到百位
  20. 5.spring-boot>redis配置使用

热门文章

  1. 工作中遇到的问题合集
  2. 计算机右键无法新建excel2007,电脑桌面右键新建菜单中没有Word/Excel/PPT等文档怎么办?...
  3. scandir、direct的用法
  4. 建模simulink - xpc函数参数处理
  5. 未来生活进行时: 互联网”进化论”——达尔文与人工智能的故事?!
  6. 如何查看.mdf文件数据库版本信息
  7. 百度网盘NDM高速下载
  8. 【分享】git clone 提示 unable to access ‘http://gitlab.xxxx/gateway.git/‘: Could not resolve host xxxx
  9. Macbook Pro 201 装Win10 声卡_MacBook+BMPCC+康佳PS300共同打造事半功倍视频制作流
  10. 终于可以在html上自动显示汉字拼音了