当前位置:网站首页>PHP 实现根据概率抽奖

PHP 实现根据概率抽奖

2022-07-06 21:17:00 指针再爱我一次

一、思路

大概思路根据可能性向数组中填写多少个值,比如说30%的几率,就向数组中填入30个这个奖品的id

二、实现代码

$data = [
    [
        'id' => 1,
        'name' => '谢谢惠顾',
        'probability' => 80 // 抽奖概率
    ],
    [
        'id' => 2,
        'name' => '10元现金',
        'probability' => 18 // 抽奖概率
    ],
    [
        'id' => 3,
        'name' => '100元现金',
        'probability' => 2 // 抽奖概率
    ],
];
$list = [];
foreach ($data as $key=>$v){
    
    $list = array_merge($list, array_fill(0, $v['probability'], $v['id']));//生成奖品数组
}
shuffle($list);//打乱数组顺序
$key = array_rand($list,1);//获取数组随机下标
// 返回奖品id, 后面可以根据奖品id实现具体其他业务
return $list[$key];

有问题欢迎联系我哦!

原网站

版权声明
本文为[指针再爱我一次]所创,转载请带上原文链接,感谢
https://blog.csdn.net/IT_guoguo/article/details/124899875