很多时候,做活动需要抽奖游戏,
<?php $prize_arr = array( '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1), '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), '4' => array('id'=>5,'prize'=>'10Q币','v'=>22), '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50) ); shuffle($prize_arr); $pcount=array_sum(array_column($prize_arr,'v')); $result=null; foreach($prize_arr as $key=>$val){ $rand=mt_rand(1,$pcount); var_dump($rand); if($rand<=$val['v']){ $result=$key; break; }else{ $pcount-=$val['v']; } } var_dump($prize_arr[$result]);
代码实现:
$goods = array( '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1), '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), '4' => array('id'=>5,'prize'=>'10Q币','v'=>22), '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50) );
$count=array_sum(array_column($goods,'odds')); shuffle($goods); $zhongjiang=null; foreach($goods as $key=>$val){ $zj=rand(1,$count); if($zj<=$val['odds']){ $zhongjiang=$goods[$key]; break; }else{ $count-=$val['odds']; } }
抽奖思路参考于:
https://www.helloweba.net/javascript/184.html
https://www.helloweba.net/tag/jiang.html