php簡單計算權(quán)重的方法示例【適合抽獎類應(yīng)用】
本文實例講述了php簡單計算權(quán)重的方法。分享給大家供大家參考,具體如下:
//簡單權(quán)重計算器 $data222=array( 0=>array('id'=>1,'name'=>'一等獎','weight'=>'3'), 1=>array('id'=>2,'name'=>'二等獎','weight'=>'1'), 2=>array('id'=>3,'name'=>'三等獎','weight'=>'5'), 3=>array('id'=>3,'name'=>'三等獎','weight'=>'1'), ); // 權(quán)重數(shù)值越高,被返回的概率越大 // 原理生成權(quán)重個數(shù)的數(shù)組字,入array(5個0,10個1,25個2) function countWeight($data){ $i=0; $temp=array(); foreach($data as $v){ for($i=0;$i<$v['weight'];$i++){ $temp[]=$v;//放大數(shù)組 } } $num = count($temp); //查看網(wǎng)上的有錯誤,本人已改正 $int=mt_rand(0,$num-1);//獲取一個隨機數(shù) $result=$temp[$int]; return $result; //返回一維數(shù)組 } echo '<pre>'; var_dump(countWeight($data222));
執(zhí)行后的效果為
array(3) {
["id"]=>
int(2)
["name"]=>
string(9) "二等獎"
["weight"]=>
string(2) "10"
}
PS:這里再為大家提供兩款功能類似的在線工具供大家參考:
在線隨機數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
在線隨機字符/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)學(xué)運算技巧總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
PHP實現(xiàn)實時生成并下載超大數(shù)據(jù)量的EXCEL文件詳解
EXCEL文件的處理是我們在日常工作中經(jīng)常會遇到的,這篇文章主要給大家介紹了關(guān)于利用PHP如何實現(xiàn)實時生成并下載超大數(shù)據(jù)量的EXCEL文件,通過文中介紹的這個方法對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考借鑒,下面來一起看看吧。2017-10-10php使用SAE原生Mail類實現(xiàn)各種類型郵件發(fā)送的方法
這篇文章主要介紹了php使用SAE原生Mail類實現(xiàn)各種類型郵件發(fā)送的方法,結(jié)合實例形式分析了SAE平臺解決郵件發(fā)送問題的相關(guān)操作技巧,需要的朋友可以參考下2016-10-10