php簡單中獎算法(實例)
更新時間:2017年08月15日 08:38:42 投稿:jingxian
下面小編就為大家?guī)硪黄猵hp簡單中獎算法(實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
今天遇到這樣的一個問題 封裝一個 抽獎概率函數(shù) 思前想后去網(wǎng)上找點資料吧,而且不止一種方法 這種我感覺還是比較容易的 還是那句話 實現(xiàn)功能的思路不止一種 代碼也不止一種。
function get_rand($proArr) {
$result = '';
//概率數(shù)組的總概率精度
$proSum = array_sum($proArr);
//概率數(shù)組循環(huán)
foreach ($proArr as $key => $proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
$prize_arr = array(
'0' => array('id'=>1,'prize'=>'平板電腦','v'=>0.1),
'1' => array('id'=>2,'prize'=>'數(shù)碼相機','v'=>5),
'2' => array('id'=>3,'prize'=>'音箱設備','v'=>10),
'3' => array('id'=>4,'prize'=>'4G優(yōu)盤','v'=>12),
'4' => array('id'=>5,'prize'=>'10Q幣','v'=>22),
'5' => array('id'=>6,'prize'=>'下次沒準就能中哦','v'=>50),
);
foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}
$rid = get_rand($arr); //根據(jù)概率獲取獎項id
$res['yes'] = $prize_arr[$rid-1]['prize']; //中獎項
unset($prize_arr[$rid-1]); //將中獎項從數(shù)組中剔除,剩下未中獎項
shuffle($prize_arr); //打亂數(shù)組順序
for($i=0;$i<count($prize_arr);$i++){
$pr[] = $prize_arr[$i]['prize'];
}
$res['no'] = $pr;
echo json_encode($res,JSON_UNESCAPED_UNICODE);
以上這篇php簡單中獎算法(實例)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
PHPStorm 2020.1 調試 Nodejs的多種方法詳解
這篇文章主要介紹了PHPSTORM 2020.1 調試 Nodejs的多種方法詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
CodeIgniter自定義控制器MY_Controller用法分析
這篇文章主要介紹了CodeIgniter自定義控制器MY_Controller用法,結合實例形式分析了CodeIgniter自定義控制器MY_Controller的定義與使用技巧,需要的朋友可以參考下2016-01-01
laravel 查詢數(shù)據(jù)庫獲取結果實現(xiàn)判斷是否為空
今天小編就為大家分享一篇laravel 查詢數(shù)據(jù)庫獲取結果實現(xiàn)判斷是否為空,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10

