| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- <?php
- namespace bizHd\promote\classes;
- use Yii;
- use bizHd\base\classes\BaseClass;
- class GuaGuaPrizeClass extends BaseClass
- {
-
- public static $baseFile = '\bizHd\promote\models\GuaGuaPrize';
- /*
- * 计算中奖 ssh 2019.8.10
- * [['id'=>1,'v'=>10],['id'=>2,'v'=>5,'id'=>0,'v'=>985]]
- * id是奖品id,id=0表示没有中奖。v表示概率,加起来等于1000
- * 返回示例:['id'=>1,'v'=>9]
- */
- public static function getWinRand($proArr)
- {
- $result = array();
- foreach ($proArr as $key => $val) {
- $arr[$key] = $val['v'];
- }
- // 概率数组的总概率
- $proSum = array_sum($arr);
- asort($arr);
- // 概率数组循环
- foreach ($arr as $k => $v) {
- $randNum = mt_rand(1, $proSum);
- if ($randNum <= $v) {
- $result = $proArr[$k];
- break;
- } else {
- $proSum -= $v;
- }
- }
- return $result;
- }
-
- }
|