PHP技术交流QQ群:490910618
产生金额范围在$min~$max之间,金额所占比例为n1:n2:n3: ... :nm红包
$min = 0.87; //红包范围
$max = 8.7;
$inputs = "1:2:2"; //读取页面所传参数,产生金额比例为1:2:2的红包份数
$rate = explode(':',$inputs);
$apart = count($rate);
$between = round(($max-$min)/$apart,2);
$arr = array('0' => array('left' => $min, 'right' => $min+$between));
for($i=1;$i<$apart;$i++){
$arr[$i]['left'] = $arr[$i-1]['right']+0.01;
$arr[$i]['right'] = $arr[$i-1]['right'] + $between;
}
$rate_arr = array();
$num = 1;
foreach ($rate as $key => $value) {
$temp = $value;
while ($temp > 0) {
array_push($rate_arr, $num);
$temp--;
}
$num++;
}
$x_index = array_rand($rate_arr, 1);
$x_figure = $rate_arr[$x_index];
for($i=1;$i<=$apart;$i++){
if($x_figure==$i){
//执行语句,传递参数$arr[$i-1](该参数为sql语句产生红包的范围,在数据库中直接随机生成该范围内的红包金额即可)
}
}