本文通过具体的实例向大家介绍了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实现大转盘抽奖算法(代码实例)相关推荐

  1. PHP jquery转盘抽奖,php+jqueryRotate实现大转盘抽奖

    data.php文件 //定义抽奖项 $prize_arr=array( '0' => array('id'=>1,'min'=>137,'max'=>178,'prize'= ...

  2. html做一个抽奖游戏,js实现大转盘抽奖游戏实例

    /p> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> js抽奖 td{width:50px;he ...

  3. php 打乱数组顺序_PHP实现大转盘抽奖算法

    php中文网最新课程 每日17点准时技术干货分享 本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法,希望对大家学习PHP抽奖有所帮助. 流程: 1.拼装奖项数组: 2.计算概率: 3.返回中 ...

  4. 幸运大转盘抽奖(前端)

    采用Lottery.js插件, 无依赖, 简单易用(复制粘贴就能用) 效果图(可自己写算法定义概率,可自己定义奖项数量和名称) html <!DOCTYPE html> <html ...

  5. html转盘游戏,html5大转盘抽奖实例源码(基于vue.js)

    [实例简介] [调试步骤] # 安装依赖 npm install # 开启本地服务器localhost:8088 npm run dev # 发布环境 npm run build #然后静待你的浏览器 ...

  6. Jquery写的幸运大转盘抽奖实例,用asp.net处理的服务器逻辑,附源码下载

    [实例简介] 该幸运大转盘抽奖实例已实现服务器端的业务逻辑代码,稍加改动就可以应用实际了 文件:590m.com/f/25127180-488779229-66bbf7(访问密码:551685) [实 ...

  7. PHP+AJAX开发幸运大转盘抽奖

    PHP+AJAX开发幸运大转盘抽奖 PHP+AJAX开发幸运大转盘抽奖,通过奖品库存.中奖次数来计算中奖概率 奖品设置 1 $prizes = array( 2 0 => array( 3 &q ...

  8. js框架jquery实现的幸运大转盘抽奖程序代码,兼容多种浏览器(Internet Explorer 6.0+ 、Firefox 2.0 、Safari 3 、Opera 9 、Chrome)

    博客目录 js框架jquery实现的幸运大转盘抽奖程序代码 实现功能截图 系统功能 使用技术 代码 写在最后 js框架jquery实现的幸运大转盘抽奖程序代码 本系统实现了一个幸运转盘抽奖,兼容多种浏 ...

  9. cocos2dx 圆盘抽奖_cocos2d编写的类似幸运大转盘抽奖源码

    压缩包内容概览: cocos2d编写的类似幸运大转盘抽奖源码-帮你选择 ; 随机 ; 程序委托 ; 背高清 ; 背 ipad ; 返回 ; 默认 ; 默认@2x ; 图标-72 ; 图标@2x ; 我 ...

最新文章

  1. js经典校验之注册与登录校验
  2. Matlab提取矩阵数据
  3. hahahahahah
  4. 在实际开发中碰到的小问题,保存数据时提示:对象必须实现 IConvertible
  5. oracle 12c dg新特性,Oracle 12c DG新特性---一键switchover
  6. 15分钟从零开始搭建支持10w+用户的生产环境(四)
  7. .流程引擎对接的三种方式_02
  8. LeetCode--62.不同路径(排列组合,动态规划)
  9. canvas 2.0
  10. 基于新浪微博api的微博分享功能实现
  11. java版flashplayer下载安装_mac版flash player
  12. Selenium简单的163邮箱登录实例
  13. 应用之星教你制作高下载量的App
  14. 刚性PCB和柔性PCB的区别
  15. matlab绘图——根据方程组绘图和心形图绘制
  16. 周转时间 平均周转时间 带权周转时间 平均带权周转时间
  17. PPTPDF文件转换成图片上传OSS
  18. 科大星云诗社动态20210130
  19. 轻松获得3D打印和2D定制产品及相关设备/展会/创业等最新资讯
  20. Python numpy.atleast_1d函数方法的使用

热门文章

  1. 可以与eclipse媲美的开源油藏数值模拟器OPM/Flow的安装及使用
  2. 速卖通运营之--如何通过搜索快速提升店铺流量
  3. css3滤镜属性filter实现网页变黑白效果
  4. Tigase下载安装(Linxu+Window版本)实现教程+配置聊天记录入数据库
  5. linux上面跑lvgl GUI简单实例
  6. 心理健康APP开发解决方案
  7. 哔哩哔哩,除了二次元的其他东西,包爽
  8. gooooood bye 2014---gooooooooooood luck 2015
  9. codeblocks卸载后再重装还是老样子
  10. 流感病毒爆发,科技带来希望?谷歌成功预测H1N1流感病毒