阅读目录
- 抽奖功能 1
- 抽奖功能 2
抽奖功能 1
最近做的小程序有一个抽奖功能,这里记录下实现抽奖功能的具体流程
前提:
有一组奖品数据如下
| id | 奖品(prize) | 概率(rate) | 数量(num) | 已抽数量(prize_num) |
| 1 | 一等奖 | 10% | 10 | 0 |
| 2 | 二等奖 | 15% | 20 | 0 |
| 3 | 三等奖 | 35% | 50 | 0 |
根据如上实现抽奖如下($prizes表示上面表格数据)
public function promise()
{
$prizes = [
[
'id' => 1,
'prize' => '一等奖',
'rate' => '0.1',
'num' => '10',
'prize_num' => '0',
],
[
'id' => 2,
'prize' => '二等奖',
'rate' => '0.15',
'num' => '20',
'prize_num' => '0',
],
[
'id' => 3,
'prize' => '三等奖',
'rate' => '0.3',
'num' => '50',
'prize_num' => '0',
],
];
//进行抽奖
$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 $value) {
$randNum = mt_rand(1, $countSum);
if ($randNum
关注
打赏
热门博文
- css 灰黑模式切换效果实现
- css 网站页面内容占位加载动画效果的实现
- Vue + element-ui 【前端项目一】控制某个页面不显示导航栏 4
- Vue + element-ui 【前端项目一】Table 表格并实现分页+搜索 3
- Vue + element-ui 【前端项目一】Table 表格并实现分页 2
- PHP 系统函数
- Windows 10 docker-compose 自动化构建【lnmp】
- Windows10 使用 docker 逐一构建 [lnmp]
- HttpServer 5 框架【自定义注解(1)-了解注解、使用第三方库】
- HttpServer 3 框架【最简IoC容器、初步使用第三方DI库】
