php生成微信红包简单代码
一个简单的函数实现类似微信的发红包的金额分配功能。
实现代码
/**
* @param $total [你要发的红包总额]
* @param int $num [发几个]
* @return array[生成红包金额]
*/
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) break;
$money = @mt_rand($min * 100, $safe_total * 100) / 100;//随机产生一个红包金额
$total = $total - $money;//剩余红包总额
$wamp[$i] = round($money, 2);//保留两位有效数字
}
$wamp[$i] = round($total, 2);
$returnData['MoneySum'] = $wamp;
$returnData['newTotal'] = array_sum($wamp);
return $returnData;
}
//测试
$data = getRedGift(100, 10);
echo '<pre>';
print_r($data);测试输出
Array ( [MoneySum] => Array ( [1] => 9.63 [2] => 9.03 [3] => 10.22 [4] => 11.34 [5] => 6.76 [6] => 12.71 [7] => 2.4 [8] => 3.08 [9] => 0.27 [10] => 34.56 ) [newTotal] => 100 )
本文作者: Liaodeity
本文链接: https://www.jianbaizhan.com/article/375
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!