一个简单的php随机概率出现算法
用到了 .随手写下了.
不适用于大条数 . 随机候选值超过10,000个 明显效率下降
<?php
//id 随机数据 可以随便写. weight 出现权重 必须是整数
$array = array (
array (‘id’ => 1 , ‘weight’ => 1),
array (‘id’ => 2 , ‘weight’ => 3),
array (‘id’ => 3 , ‘weight’ => 5),
);
function GW($data , $weight = ‘weight’){
foreach ( $data as $val ) {
$sumWeight += $val[$weight];
}
$randWeight = rand ( 1, $sumWeight) ;
foreach ( $data as $key => $val) {
$randWeight -= $val[$weight];
if ( $randWeight < 1 ){
return $val;
}
}
}
var_dump ( GW($array) );