<?php
function getPrize($prizes) {
//概率数组的总概率精度
$pro_sum = array_sum(array_column($prizes,'odds'));
//概率数组循环
foreach ($prizes as $item) {
$rand_num = mt_rand(1, $pro_sum);
if ($rand_num <= $item['odds']) {
return $item;
} else {
$pro_sum -= $item['odds'];
}
}
unset ($prizes);
}
$prize = [
[
'id'=>1,
'prize_name'=>'奖品1',
'val'=>1,
'odds'=>68688
],
[
'id'=>2,
'prize_name'=>'奖品2',
'val'=>1,
'odds'=>24500
],
[
'id'=>3,
'prize_name'=>'奖品3',
'val'=>1,
'odds'=>5000
],
[
'id'=>4,
'prize_name'=>'奖品4',
'val'=>1,
'odds'=>900
],
[
'id'=>5,
'prize_name'=>'奖品5',
'val'=>1,
'odds'=>500
],
[
'id'=>6,
'prize_name'=>'奖品6',
'val'=>1,
'odds'=>260
],
[
'id'=>6,
'prize_name'=>'奖品7',
'val'=>1,
'odds'=>150
],
[
'id'=>6,
'prize_name'=>'奖品8',
'val'=>1,
'odds'=>2
],
];
echo json_encode(getPrize($prize));
网友评论