有一个物品数组,从里面按照概率抽取道具
/** * 概率抽奖算法 * @param array $proArr 道具数组,格式为 [道具标识 => 概率] * @return int|string 返回道具标识 * @author: anyang * @since: 2019/4/17 * @time: 9:48 */ function get_rand($proArr) { $result = '';//概率数组的总概率精度 $proSum = array_sum($proArr);//概率数组循环 foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result; }
转载请注明:七彩悠悠博客 | 心悠悠 情悠悠 » 常用的概率抽奖算法