header("Content-type:text/html;charset=utf-8");
//用户ID
$uid=1;
//抽奖商品
$list=[
['id'=>1,'odds'=>'0.05'],
['id'=>2,'odds'=>'0.03'],
['id'=>3,'odds'=>'0.01'],
['id'=>4,'odds'=>'0.01']
];
// odds 抽奖概率 0.5为 0.5% 最小为0.01 最高值为1
$proArr=array();
$proT=array();
$sum =0;
foreach ($list as $key => $value){
$proArr[$value['id']]=$value['odds']*10000;
$sum=$sum+$value['odds']*10000;
$proT[$value['id']]=$sum;
}
//整理中奖概率
$yes=$proArr; //中奖概率
$no=10000-array_sum($proArr); //不中奖概率
array_push($proArr,$no);
//概率数组的总概率精度
$proSum = array_sum($proArr);
$res = mt_rand(1, $proSum);
//减少积分或余额,自行写
//进行抽奖
if ($res>array_sum($yes)){
echo'谢谢惠顾';
exit;
}else{
$last=0;
//如果中奖查看结果
foreach ($proT as $k => $value){
//判断范围
if ($res>$last&&$res<=$value){
//返回中奖结果
echo '恭喜你中奖了'.$k; //$k为中奖商品的id
break;
}
$last =$value;
}
exit;
}
PHP做抽奖
最新推荐文章于 2024-06-28 07:56:04 发布