本文主要和大家分享php實現中獎的執行個體代碼,希望能協助到大家。
<?php //設定中獎機率 $prize_arr = array( 0=>array( 'id'=>1,'prize'=>'現金500W','v'=>1 ), //機率為1/200 1=>array( 'id'=>2,'prize'=>'iphone7','v'=>5 ), 2=>array( 'id'=>3,'prize'=>'耐克跑鞋','v'=>10 ), 3=>array( 'id'=>4,'prize'=>'魔聲耳機','v'=>24 ), 4=>array( 'id'=>5,'prize'=>'藍芽音響','v'=>60 ), 5=>array( 'id'=>6,'prize'=>'現金1元','v'=>100000 ) ); /*16 * 對數組進行處理17 */foreach( $prize_arr as $k => $v ){ //使用新數組item $item[$v['id']] = $v['v']; }function get_rand($item){ $num = array_sum($item);//計算出分母200 foreach( $item as $k => $v ){ $rand = mt_rand(1, $num);//機率區間(整數) 包括1和200 /*43 *這個演算法很666 44 */ if( $rand <= $v ){ //迴圈遍曆,當下標$k = 1的時候,只有$rand = 1 才能中獎 $result = $k; echo $rand.'--'.$v; break; }else{ //當下標$k=6的時候,如果$rand>100 必須$rand < = 100 才能中獎 ,那麼前面5次迴圈之後$rand的機率區間= 200-1-5-10-24-60 (1,100) 必中1塊錢 $num-=$v; echo '*'.$rand.'*'." "." "." "; } } return $result; } var_dump(get_rand($item)); ?>