基于PHP實現(xiàn)簡單的隨機抽獎小程序
一個抽獎小程序,概論可控,也可某個獎品在前端顯示,而程序中根本不可能獲得!把所有的概率x10后相加起來,新數(shù)組中每項的值等于它前幾個的和加上它本身。
然后隨即生成一個0到最大數(shù)之間的一個數(shù),通過循環(huán)查看它屬于那個區(qū)間,返回該區(qū)間的key。
代碼如下
$prize = array(
1 => 3.5, //3.5%機率
2 => 2.5,
3 => 6,
4 => 2,
5 => 42, //42%機率
6 => 36,
7 => 2,
8 => 4,
9 => 2
);
//最后確認相加等于100
$prizeList = array(
1 => array('小仙子'),
2 => array('5Q幣'),
3 => array('38888游戲幣'),
4 => array('88888游戲幣'),
5 => array('謝謝參與!'),
6 => array('歡迎下次再來!'),
7 => array('10Q幣'),
8 => array('888銀元寶(綁定)'),
9 => array('隨機高級坐騎(綁定)')
);
//unset($prize[7]); 直接把10Q這個獎品去掉
$times = 10;
$max = 0;
foreach ($prize as $k => $v)
{
$max = $v * $times + $max;
$row['v'] = $max;
$row['k'] = $k;
$prizeZone[] = $row;
}
$max--; //臨界值
$rand = mt_rand(0, $max);
$zone = 1;
foreach ($prizeZone as $k => $v)
{
if ($rand >= $v['v'])
{
if ($rand >= $prizeZone[$k + 1]['v'])
{
continue;
}
else
{
$zone = $prizeZone[$k + 1]['k'];
break;
}
}
$zone = $v['k'];
break;
}
print_r($prizeList[$zone][0]);
基于php實現(xiàn)簡單的抽獎小程序代碼就給大家寫這么多,不過都是核心代碼,希望對大家學(xué)習(xí)工作有所幫助。
相關(guān)文章
Laravel 5框架學(xué)習(xí)之子視圖和表單復(fù)用
本文給大家主要介紹的是Laravel5框架中的子視圖以及表單復(fù)用的用法,十分的細致全面,對于大家熟練掌握Laravel5框架非常有幫助,有需要的小伙伴可以參考下2015-04-04
php實現(xiàn)對短信驗證碼發(fā)送次數(shù)的限制實例講解
這篇文章主要介紹了php實現(xiàn)對短信驗證碼發(fā)送次數(shù)的限制實例講解,案例中列舉了具體代碼實現(xiàn),有感興趣的同學(xué)可以學(xué)習(xí)下2021-03-03
根據(jù)ip調(diào)用新浪api獲取城市名并轉(zhuǎn)成拼音
這篇文章主要介紹了根據(jù)ip調(diào)用新浪api獲取城市名并轉(zhuǎn)成拼音的示例,,需要的朋友可以參考下2014-03-03
Yii框架 session 數(shù)據(jù)庫存儲操作方法示例
這篇文章主要介紹了Yii框架 session 數(shù)據(jù)庫存儲操作方法,結(jié)合實例形式分析了使用Yii框架session組件配置與數(shù)據(jù)庫存儲相關(guān)操作技巧,需要的朋友可以參考下2019-11-11

