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 许可协议。转载请注明出处!