抽獎小程序

function get_rand($proArr)json

    {數組

        $result = '';this

  

        //機率數組的總機率精度code

        $proSum = array_sum($proArr);get

 

        //機率數組循環io

        foreach ($proArr as $key => $proCur) {function

            $randNum = mt_rand(1, $proSum);foreach

            if ($randNum <= $proCur) {循環

                $result = $key;co

                break;

            } else {

                $proSum -= $proCur;

            }

        }

        unset ($proArr);

 

        return $result;

    }

 

        $prize_arr = [

            '0' => ['id'=>1,'prize'=>'平板電腦','v'=>1],    # v 表明中獎機率,0 表明中獎機率爲 0

            '1' => ['id'=>2,'prize'=>'數碼相機','v'=>5],

            '2' => ['id'=>3,'prize'=>'音箱設備','v'=>10],

            '3' => ['id'=>4,'prize'=>'4G優盤','v'=>200],

            '4' => ['id'=>5,'prize'=>'10Q幣','v'=>1000],

            '5' => ['id'=>6,'prize'=>'下次沒準就能中哦','v'=>10000],

        ];

 

        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;$i<count($prize_arr);$i++){

            $pr[] = $prize_arr[$i]['prize'];

        }

        $res['no'] = $pr;

        echo json_encode($res);

相關文章
相關標籤/搜索