php大转盘抽奖
2016-07-07 15:40
441 查看
对于php抽奖概率在之前章节有
http://www.cnblogs.com/shiwenhu/p/5650269.html
现在来设计对于大转盘的中奖,这里定义的数组比之前多了个中间的显示中奖的度数
http://www.cnblogs.com/shiwenhu/p/5650269.html
现在来设计对于大转盘的中奖,这里定义的数组比之前多了个中间的显示中奖的度数
<?php $prize_arr = array( '0' => array('id' => 1, 'min' => 1, 'max' => 29, 'prize' => '一等奖', 'v' => 1), '1' => array('id' => 2, 'min' => 302, 'max' => 328, 'prize' => '二等奖', 'v' => 2), '2' => array('id' => 3, 'min' => 242, 'max' => 268, 'prize' => '三等奖', 'v' => 5), '3' => array('id' => 4, 'min' => 182, 'max' => 208, 'prize' => '四等奖', 'v' => 7), '4' => array('id' => 5, 'min' => 122, 'max' => 148, 'prize' => '五等奖', 'v' => 10), '5' => array('id' => 6, 'min' => 62, 'max' => 88, 'prize' => '六等奖', 'v' => 25), '6' => array('id' => 7, 'min' => array(32, 92, 152, 212, 272, 332), 'max' => array(58, 118, 178, 238, 298, 358), 'prize' => '七等奖', 'v' => 50) //min数组表示每个个奖项对应的最小角度 max表示最大角度 //prize表示奖项内容,v表示中奖几率(若数组中七个奖项的v的总和为100,如果v的值为1,则代表中奖几率为1%,依此类推) );
function getRand($proArr) { $data = ''; $proSum = array_sum($proArr); //概率数组的总概率精度 foreach ($proArr as $k => $v) { //概率数组循环 $randNum = mt_rand(1, $proSum); if ($randNum <= $v) { $data = $k; break; } else { $proSum -= $v; } } unset($proArr); return $data; }
foreach ($prize_arr as $v) {
$arr[$v['id']] = $v['v'];
}$prize_id = getRand($arr); //根据概率获取奖项id$res = $prize_arr[$prize_id - 1]; //中奖项
$min = $res['min'];
$max = $res['max'];
if ($res['id'] == 7) { //七等奖
$i = mt_rand(0, 5);
$data['angle'] = mt_rand($min[$i], $max[$i]);
} else {
$data['angle'] = mt_rand($min, $max); //随机生成一个角度
}
$data['prize'] = $res['prize'];echo json_encode($data);
?>
相关文章推荐
- thinkphp ventor引入第三方类库 class not found
- PHP用自带的ZipArchive这个类进行压缩文件夹
- php中判断变量是否为空
- php抽奖概率程序
- ThinkPHP的增、删、改、查
- php实现返回上一页的功能的3种有效方法
- PHPCMS的产品筛选功能(通用)
- phpStudy5——php导入其他php文件(php文件的引入)
- thinkphp 模板截取中文字符串函数
- laravel中公共子视图继承实现
- php生成mysql的数据字典
- PHPCMS一个BUG
- php中iconv函数 详解
- ThinkPHP备份数据( 先在页面列表内显示每个数据表名称,点击操作按钮【备份】对其备份)
- ssh隐藏的sftp功能的使用
- RTP学习笔记
- ContentProvider和ContentResolver的混用
- php模拟post提交提交json数据
- PHP安全编码
- YII2 Model 类切换数据库连接