配置數(shù)組(v代表概率)
$prize_arr = array( '0' => array('id'=>1,'prize'=>'平板電腦','v'=>1), '1' => array('id'=>2,'prize'=>'數(shù)碼相機(jī)','v'=>5), '2' => array('id'=>3,'prize'=>'音箱設(shè)備','v'=>10), '3' => array('id'=>4,'prize'=>'4G優(yōu)盤','v'=>12), '4' => array('id'=>5,'prize'=>'10Q幣','v'=>22), '5' => array('id'=>6,'prize'=>'下次沒準(zhǔn)就能中哦','v'=>50), );
邏輯代碼
foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}
function get_rand($proArr) {
$result = '';
//概率數(shù)組的總概率精度
$proSum = array_sum($proArr);
//概率數(shù)組循環(huán)
foreach ($proArr as $key => $proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
return $result;
}