阅读目录
抽奖功能 1
- 抽奖功能 1
- 抽奖功能 2
最近做的小程序有一个抽奖功能,这里记录下实现抽奖功能的具体流程
前提:
有一组奖品数据如下
id奖品(prize)概率(rate)数量(num)已抽数量(prize_num)1一等奖10%1002二等奖15%2003三等奖35%500根据如上实现抽奖如下($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
关注
打赏