php随机抽奖涉及概念运算

直接粘上相关代码,大家可以直接使用。

   
  
function getRand() {
     //假设有一个抽奖数组 $proArr22
$proArr22 = [ 0=>['id'=>14,'v'=>50], 1=>['id'=>16,'v'=>10], 2=>['id'=>18,'v'=>20] ]; $proArr = []; foreach ($proArr22 as $key => $value) { $proArr[$value['id']] = $value['v']; } //print_r($proArr);echo "<br/>"; $id = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $id = $key; break; } else { $proSum -= $proCur; } } //unset ($proArr); echo $id;exit; return $id; }

直接调用此函数,即可获取的大概率的id。

原文地址:https://www.cnblogs.com/lyzaidxh/p/9970340.html