php生成微信红包简单代码

作者:Liaodeity - 2016年03月29日

        一个简单的函数实现类似微信的发红包的金额分配功能。

实现代码

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


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!