function get_rand($proArr) {
$result = '';
//概率数组的总概率精度
$proSum = array_sum($proArr); //求和
//概率数组循环
foreach ($proArr as $key => $value) {
$randNum = mt_rand(1, $proSum); //抽取随机数
echo $randNum."<br>";
echo $value."<br>";
if ($randNum <= $value) {
$result = $key; //得出结果,中奖的
break;
} else {
$proSum -= $value;
}
}
unset ($proArr);
return $result;
}
// a中奖率5%,b中奖率10%,c中奖率20%,d不中奖率65%,
$prize_arr =array('a'=>5,'b'=>10,'c'=>20,'d'=>65);
$mine = get_rand($prize_arr);
echo $mine;
输出结果
7
5
23
10
76
20
63
65
d