一个简单php 抽奖小程序

作者:袖梨 2022-06-24


然后随即生成一个0到最大数之间的一个数,通过循环查看它属于那个区间,返回该区间的key。

 代码如下 复制代码

$prize = array(
 1 => 3.5,  //3.5%机率
 2 => 2.5,
 3 => 6,
 4 => 2,
 5 => 42,  //42%机率
 6 => 36,
 7 => 2,
 8 => 4,
 9 => 2
);
//最后确认相加等于100
$prizeList = array(
 1 => array('小仙子'),
 2 => array('5Q币'),
 3 => array('38888游戏币'),
 4 => array('88888游戏币'),
 5 => array('谢谢参与!'),
 6 => array('欢迎下次再来!'),
 7 => array('10Q币'),
 8 => array('888银元宝(绑定)'),
 9 => array('随机高级坐骑(绑定)')
);
//unset($prize[7]); 直接把10Q这个奖品去掉
 
$times = 10;
$max = 0;
foreach ($prize as $k => $v)
{
 $max = $v * $times + $max;
 $row['v'] = $max;
 $row['k'] = $k;
 $prizeZone[] = $row;
}
 
$max--; //临界值
$rand = mt_rand(0, $max);
$zone = 1;
foreach ($prizeZone as $k => $v)
{
 if ($rand >= $v['v'])
 {
  if ($rand >= $prizeZone[$k + 1]['v'])
  {
   continue;
  }
  else
  {
   $zone = $prizeZone[$k + 1]['k'];
   break;
  }
 }
 $zone = $v['k'];
 break;
}
print_r($prizeList[$zone][0]);

相关文章

精彩推荐