美文网首页
简单的抽奖实现

简单的抽奖实现

作者: 廷裕同学 | 来源:发表于2023-09-27 08:56 被阅读0次
    <?php
    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;
    }
    
    $arr = [
        ['id' => 1, 'name' => '特等奖', 'v' => 1],
        ['id' => 2, 'name' => '一等奖', 'v' => 5],
        ['id' => 3, 'name' => '二等奖', 'v' => 10],
        ['id' => 4, 'name' => '三等奖', 'v' => 12],
        ['id' => 5, 'name' => '四等奖', 'v' => 22],
        ['id' => 6, 'name' => '没中奖', 'v' => 50],
    ];
    
    foreach ($arr as $val) {
        $item[$val['id']] = $val['v'];
    }
    
    var_dump(get_rand($item));
    

    相关文章

      网友评论

          本文标题:简单的抽奖实现

          本文链接:https://www.haomeiwen.com/subject/cfkkbdtx.html