本文实例讲述了php简单计算权重的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
//简单权重计算器 $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"
}
希望本文所述对大家PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/u010071211/article/details/79626899