首页后端开发PHPPHP实现大转盘抽奖算法(代码实例)

PHP实现大转盘抽奖算法(代码实例)

时间2024-02-02 00:39:03发布访客分类PHP浏览200
导读:收集整理的这篇文章主要介绍了PHP实现大转盘抽奖算法(代码实例),觉得挺不错的,现在分享给大家,也给大家做个参考。本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法,希望对大家学习PHP抽奖有所帮助。@H_304_13@流程:1.拼...
收集整理的这篇文章主要介绍了PHP实现大转盘抽奖算法(代码实例),觉得挺不错的,现在分享给大家,也给大家做个参考。

本文通过具体的实例向大家介绍了PHP语言实现大转盘抽奖算法,希望对大家学习PHP抽奖有所帮助。

@H_304_13@流程:

1.拼装奖项数组;

2.计算概率;

3.返回中奖情况。

代码如下:中奖概率 ' v ' 可以在后台设置,传到此方法中,注意传整数

function get_gift(){
              //拼装奖项数组        // 奖项id,奖品,概率        $PRize_arr = array(             '0' =>
     array('id'=>
    1,'prize'=>
    '平板电脑','v'=>
    0),             '1' =>
     array('id'=>
    2,'prize'=>
    '数码相机','v'=>
    0),             '2' =>
     array('id'=>
    3,'prize'=>
    '音箱设备','v'=>
    0),             '3' =>
     array('id'=>
    4,'prize'=>
    '4G优盘','v'=>
    5),             '4' =>
     array('id'=>
    5,'prize'=>
    '10Q币','v'=>
    0),             '5' =>
     array('id'=>
    6,'prize'=>
    '空奖','v'=>
    5),           );
               foreach ($prize_arr as $key =>
 $val) {
                 $arr[$val['id']] = $val['v'];
//概率数组           }
                $rid = $this->
    get_rand($arr);
     //根据概率获取奖项id           $res['yes'] = $prize_arr[$rid-1]['prize'];
     //中奖项           unset($prize_arr[$rid-1]);
     //将中奖项从数组中剔除,剩下未中奖项           shuffle($prize_arr);
     //打乱数组顺序           for($i=0;
    $icount($prize_arr);
$i++){
                 $pr[] = $prize_arr[$i]['prize'];
  //未中奖项数组         }
               $res['no'] = $pr;
            // var_dump($res);
        if($res['yes']!='空奖'){
                  $result['status']=1;
                  $result['name']=$res['yes'];
          }
else{
                  $result['status']=-1;
                  $result['msg']=$res['yes'];
          }
               //return $result;
              VAR_dump($result);
    }
      //计算中奖概率    function get_rand($proArr) {
             $result = '';
             //概率数组的总概率精度         $proSum = array_sum($proArr);
             // var_dump($proSum);
          //概率数组循环         foreach ($proArr as $key =>
 $proCur) {
               $randNum = mt_rand(1, $proSum);
  //返回随机整数         if ($randNum = $proCur) {
                 $result = $key;
                 break;
           }
 else {
                 $proSum -= $proCur;
           }
         }
             unset ($proArr);
             return $result;
       }
    

更多相关php知识,请访问php教程!

以上就是PHP实现大转盘抽奖算法(代码实例)的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PHP实现大转盘抽奖算法(代码实例)
本文地址: https://pptw.com/jishu/596131.html
php中异步执行的四种方式 解析PHP中的安全模式(safe

游客 回复需填写必要信息