php簡單計算權重的方法示例【適合抽獎類應用】

這篇文章主要介紹了php簡單計算權重的方法,結合實例形式分析了php概率相關的數值計算操作技巧,適合抽獎類應用,需要的朋友可以參考下

本文實例講述了php簡單計算權重的方法。分享給大家供大家參考,具體如下:

//簡單權重計算器
$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'),
);
// 權重數值越高,被返回的概率越大
// 原理生成權重個數的數組字,入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;//放大數組
    }
  }
  $num = count($temp);  //查看網上的有錯誤,本人已改正
  $int=mt_rand(0,$num-1);//獲取一個隨機數
  $result=$temp[$int];
  return $result;  //返回一維數組
}
echo '<pre>';
var_dump(countWeight($data222));

執行後的效果爲

array(3) {
  ["id"]=>
  int(2)
  ["name"]=>
  string(9) "二等獎"
  ["weight"]=>
  string(2) "10"
}

PS:這裏再爲大家提供兩款功能類似的在線工具供大家參考:

在線隨機數字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu

在線隨機字符/隨機密碼生成工具:
http://tools.jb51.net/aideddesign/rnd_password

更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP數學運算技巧總結》、《php字符串(string)用法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數組(Array)操作技巧大全》及《php常見數據庫操作技巧彙總

希望本文所述對大家PHP程序設計有所幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章