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

简单的抽奖实现

作者: 廷裕同学 | 来源:发表于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