function get_rand($proArr)json
{數組
$result = '';this
//機率數組的總機率精度code
$proSum = array_sum($proArr);get
//機率數組循環io
foreach ($proArr as $key => $proCur) {function
$randNum = mt_rand(1, $proSum);foreach
if ($randNum <= $proCur) {循環
$result = $key;co
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
$prize_arr = [
'0' => ['id'=>1,'prize'=>'平板電腦','v'=>1], # v 表明中獎機率,0 表明中獎機率爲 0
'1' => ['id'=>2,'prize'=>'數碼相機','v'=>5],
'2' => ['id'=>3,'prize'=>'音箱設備','v'=>10],
'3' => ['id'=>4,'prize'=>'4G優盤','v'=>200],
'4' => ['id'=>5,'prize'=>'10Q幣','v'=>1000],
'5' => ['id'=>6,'prize'=>'下次沒準就能中哦','v'=>10000],
];
foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}
$rid = $this->get_rand($arr); //根據機率獲取獎項id
$res['yes'] = $prize_arr[$rid-1]['prize']; //中獎項
unset($prize_arr[$rid-1]); //將中獎項從數組中剔除,剩下未中獎項
shuffle($prize_arr); //打亂數組順序
for($i=0;$i<count($prize_arr);$i++){
$pr[] = $prize_arr[$i]['prize'];
}
$res['no'] = $pr;
echo json_encode($res);