日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

php9宫格抽奖程序_php抽奖算法(适用于九宫格、大转盘)

發布時間:2025/3/20 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php9宫格抽奖程序_php抽奖算法(适用于九宫格、大转盘) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

public function doDraw()

{

// 獎品數組

$proArr = array(

// id => 獎品等級, name => 獎品名稱, v => 獎品權重

array('id'=>1,'name'=>'超級獎品','v'=>0),

array('id'=>2,'name'=>'特等獎','v'=>1),

array('id'=>3,'name'=>'一等獎','v'=>5),

array('id'=>4,'name'=>'二等獎','v'=>10),

array('id'=>5,'name'=>'三等獎','v'=>12),

array('id'=>6,'name'=>'四等獎','v'=>22),

array('id'=>7,'name'=>'五等獎','v'=>50),

array('id'=>8,'name'=>'六等獎','v'=>100),

array('id'=>9,'name'=>'七等獎','v'=>200),

array('id'=>10,'name'=>'沒中獎','v'=>500),

);

$arr = [];

foreach ($proArr as $key => $val) {

$arr[$val['id']] = $val['v'];

}

// 中獎 id

$rid = $this->get_rand($arr);

/**模擬抽獎測試**/

/* $i = 0;

while ( $i < 10000) {

$rid = $this->get_rand($arr);

$res[] = $rid;

$i++;

}

// 統計獎品出現次數

$result = array_count_values($res);

asort($result);

foreach ($result as $id => $times) {

foreach ($proArr as $gifts) {

if($id == $gifts['id']){

$response[$gifts['name']] = $times;

}

}

}

dump($response);

die;*/

// 中獎禮品

$result['yes'] = $proArr[$rid-1]['name'];

// 從原獎品數組中剔除已經中獎禮品

unset($proArr[$rid-1]);

// 打亂數組排序

shuffle($proArr);

for ($i=0; $i < count($proArr); $i++) {

$result['no'][] = $proArr[$i]['name'];

}

// foreach ($proArr as $k => $v) {

// // 沒中獎禮品

// $result['no'][] = $v['name'];

// }

dump($result);

}

public function get_rand($proArr = array()) {

if(empty($proArr)) die;

$rid = '';

// 概率數組的總權重

$proSum = array_sum($proArr);

// 概率數組循環

foreach ($proArr as $k => $proCur) {

// 從 1 到概率總數中任意取值

$randNum = mt_rand(1, $proSum);

// 判斷隨機數是否在概率權重中

if ($randNum <= $proCur) {

// 取出獎品 id

$rid = $k;

break;

} else {

// 如果隨機數不在概率權限中,則不斷縮小總權重,直到從獎品數組中取出一個獎品

$proSum -= $proCur;

}

}

unset($proArr);

return $rid;

}

總結

以上是生活随笔為你收集整理的php9宫格抽奖程序_php抽奖算法(适用于九宫格、大转盘)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。