php生成微信红包数组的方法

先上效果图

<?php

function getRedGift($total, $num = 10) {
$min = 0.01;//最小的红包金额
$wamp = array();
$returnData = array();
for ($i = 1; $i < $num; $i++) {
  	$safe_total = ($total - ($num - $i) * $min) / ($num - $i); //当前允许红包金额的最大值
  	if ($safe_total < 0) {//如果红金金额的最大值小于0就跳出循环
  		break; 
  	}
  	$money = @mt_rand($min*100,$safe_total*100)/100; //随机产生一个红包金额, mt_rand(min,max)是生成min到max的随机整数,包含min和max,所以为了生成的红包金额有小数,所以*100先,再100
  	$total = $total - $money; //剩余红包总额
  	$wamp[$i] = round($money, 2); //保留两位有效数字
  }
	$wamp[$i] = round($total, 2);//最后一个红包金额
	$returnData['MoneySum'] = $wamp;
	$returnData['newTotal'] = array_sum($wamp);//array_sum是计算数组中所有值的和 
	return $returnData;
}
//测试
$data = getRedGift(100, 10);


echo '<pre>';
var_dump($data);
?>

 

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论