php编写幸运大转盘

//幸运大转盘
    public function getTurnTable(){
        /*$logic = new UsersLogic();
        $user_id = $this->user_id;*/
        //获取奖项数字
        $prize_arr = array(
            array('id'=>1,'type'=>'c','prize'=>10,'prize_name'=>"10金币",'weight'=>5,'rank'=>0),
            array('id'=>2,'type'=>'c','prize'=>20,'prize_name'=>"20金币",'weight'=>5,'rank'=>1),
            array('id'=>3,'type'=>'c','prize'=>15,'prize_name'=>"15金币",'weight'=>5,'rank'=>2),
            array('id'=>4,'type'=>'g','prize'=>10,'prize_name'=>"手机",'weight'=>5,'rank'=>3),
            array('id'=>5,'type'=>'p','prize'=>10,'prize_name'=>"貂蝉",'weight'=>5,'rank'=>4),
            array('id'=>6,'type'=>'p','prize'=>10,'prize_name'=>"西施",'weight'=>5,'rank'=>5),
            array('id'=>7,'type'=>'p','prize'=>10,'prize_name'=>"杨贵妃",'weight'=>5,'rank'=>6),
            array('id'=>8,'type'=>'p','prize'=>10,'prize_name'=>"王昭君",'weight'=>65,'rank'=>7)       
        );

        //抽奖开始
        foreach ($prize_arr as $key => $val) {
            $arr[$key] = $val['weight'];
        }
        $rid = self::getRand($arr); //根据概率获取奖项id
        if($rid !== 0 && empty($rid))
        {
            //$rs = array();
            return json_encode(array('status'=>0,'msg'=>"抽奖失败!",'result'=>null));
        }
        $pr = $prize_arr[$rid]; //中奖项
           var_dump($pr);exit;
        //return json_encode(array('status'=>1,'msg'=>"抽奖成功!",'result'=>$pr));
        
    }

    /**
     * 根据概率获取奖项
     * @param  $priarr
     * @return 
     */
    public function getRand($priarr) {
        $result = '';

        //概率数组的总概率精度
        $proSum = array_sum($priarr);

        //概率数组循环
        foreach ($priarr as $key => $proCur) {
            $randNum = mt_rand(1, $proSum);
            if ($randNum <= $proCur) {
                $result = $key;
                break;
            } else {
                $proSum -= $proCur;
            }
        }
        unset ($priarr);

        return $result;
    }

猜你喜欢

转载自blog.csdn.net/sluckyboy/article/details/81701777