红包代码"/>
php像微信一样生成随机红包代码
代码如下:
//$amount:红包金额 $num:生成红包数量public function money($amount,$num){if(!is_numeric($amount)){return "请传入正确金额!";}if($amount < 0){return "请传入大于0的金额!";}if($num <= 0){return "红包数要大于0!";}if($num/100 > $amount){return "红包金额过少,至少保证每个红包有0.01元";} $amount *= 100; //金额乘以100,随机小数点后2位$arr = array(); //储存生成红包金额的数组$count = 0; //统计已生成红包金额的总和$multiple = 0.3; //设置生成红包金额不能超过总金额的倍数//根据生成红包数进行循环生成for($i = 1; $i <= $num; $i++){//生成第一个红包,且生成红包数量不等于1if($count == 0 && $num != 1){//随机生成金额,至少预留剩余人数的金额 每人至少0.01,已乘100,所以至少为1$rand = rand(1,$amount-($num - $i));//循环判断生成金额不能小于或等于0或大于剩余金额的0.5倍,看个人情况修改while($rand < 0 || $rand == 0 || $rand > $amount * $multiple){$rand = rand(1,$amount-($num - $i)); //重新生成金额}}else if($i == $num || $num == 1){ //生成最后一个红包或红包数等于1时$rand = $amount-$count; //直接将剩余金额赋值}else{//同上$rand = rand(1,$amount-$count-$num - $i);//同上while($rand < 0 || $rand == 0 || $rand > $amount * $multiple){$rand = rand(1,$amount-$count-$num - $i);//重新生成金额}}$count += $rand; //统计生成的总金额$arr[] = $rand/100; //转回原来的金额并存入数组}return $arr;}
更多推荐
php像微信一样生成随机红包代码
发布评论