PHP實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)的示例代碼
一、隨機(jī)抽獎(jiǎng)
隨機(jī)抽獎(jiǎng)當(dāng)然是最公平的抽獎(jiǎng),就是當(dāng)用戶抽獎(jiǎng)時(shí)隨機(jī)返回抽獎(jiǎng)結(jié)果
這種結(jié)果完全隨機(jī),不受人為控制,中獎(jiǎng)全憑借運(yùn)氣
先定義獎(jiǎng)池?fù)碛械莫?jiǎng)品,用戶進(jìn)來(lái)抽獎(jiǎng)后,隨機(jī)返回獎(jiǎng)池中的獎(jiǎng)品
<?php $prize = ['60寸大彩電', 'iphone13', '戴森吸塵器', '索尼微單', 'VR眼鏡', '謝謝參與']; // 當(dāng)有用戶進(jìn)來(lái)抽獎(jiǎng),進(jìn)行隨機(jī)抽獎(jiǎng) shuffle($prize); // 抽獎(jiǎng)結(jié)果 print_r($prize[0]);
二、概率抽獎(jiǎng)
概率抽獎(jiǎng),其實(shí)就是給獎(jiǎng)品設(shè)置概率,一般高價(jià)值的獎(jiǎng)品會(huì)設(shè)置中獎(jiǎng)的概率極低
這種抽獎(jiǎng)也是隨機(jī)抽獎(jiǎng)的一種,但是并沒(méi)有上面那種沒(méi)有概率控制的隨機(jī)抽獎(jiǎng)
抽中特等獎(jiǎng)是需要極大的運(yùn)氣成分的,大多數(shù)人都會(huì)抽獎(jiǎng)價(jià)值低的獎(jiǎng)品
<?php
$prize = [
['name' => '60寸大彩電', 'chance' => 100],
['name' => 'iphone13', 'chance' => 900],
['name' => '戴森吸塵器', 'chance' => 1000],
['name' => '索尼微單', 'chance' => 2000],
['name' => 'VR眼鏡', 'chance' => 3000],
['name' => '謝謝參與', 'chance' => 3000]
];
// 概率重組
$chance = 0;
foreach ($prize as &$item) {
$chance += $item['chance'];
$item['chance'] = $chance;
}
// 隨機(jī)抽獎(jiǎng)
$rand = mt_rand(1, 10000);
$result = [];
foreach ($prize as $_k => $_v) {
if ($_k == 0) {
if ($rand > 0 && $rand <= $_v['chance']) {
$result = $_v;
break;
}
} else {
if ($rand > $prize[$_k - 1]['chance'] && $rand <= $_v['chance']) {
$result = $_v;
break;
}
}
}
// 抽獎(jiǎng)結(jié)果
echo json_encode(compact('rand', 'result'));
三、內(nèi)定抽獎(jiǎng)
內(nèi)定抽獎(jiǎng)是年會(huì)常用的抽獎(jiǎng)方式,公司為了獎(jiǎng)勵(lì)那些本年度為公司做過(guò)重大貢獻(xiàn)的人
選擇在年會(huì)上將指定獎(jiǎng)品通過(guò)抽獎(jiǎng)的方式送給那些人
不僅能夠給那些人帶來(lái)鼓勵(lì),更多的是為了加強(qiáng)公司凝聚力
這種抽獎(jiǎng)模式,早先已經(jīng)將獎(jiǎng)品和內(nèi)定人做了綁定
只有當(dāng)指定的人進(jìn)來(lái)才可以抽到獎(jiǎng)品,其他人都是謝謝參與,但是用戶卻不知道這種是內(nèi)定的
<?php
$prize = [
['name' => '60寸大彩電', 'winners' => ['張三']],
['name' => 'iphone13', 'winners' => ['李四', '王五']],
['name' => '戴森吸塵器', 'winners' => ['亮仔']],
['name' => '索尼微單', 'winners' => ['李六']],
['name' => 'VR眼鏡', 'winners' => ['小明']]
];
// 開(kāi)始抽獎(jiǎng),這里假如亮仔過(guò)來(lái)抽
// 這里的用戶也可以是用戶唯一標(biāo)識(shí)
$user = '亮仔';
$result = '謝謝參與';
foreach ($prize as $item) {
if (in_array($user, $item['winners'])) {
$result = $item['name'];
break;
}
}
print_r('獲得的獎(jiǎng)品:' . $result);到此這篇關(guān)于PHP實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)的示例代碼的文章就介紹到這了,更多相關(guān)PHP抽獎(jiǎng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP頁(yè)面靜態(tài)化——純靜態(tài)與偽靜態(tài)用法詳解
這篇文章主要介紹了PHP頁(yè)面靜態(tài)化——純靜態(tài)與偽靜態(tài)用法,結(jié)合實(shí)例形式分析了PHP頁(yè)面靜態(tài)化——純靜態(tài)與偽靜態(tài)相關(guān)原理、實(shí)現(xiàn)方法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-06-06
php SQLite學(xué)習(xí)筆記與常見(jiàn)問(wèn)題分析
php SQLite學(xué)習(xí)資料收集,與一些常見(jiàn)問(wèn)題的解決方法2008-07-07

