admin 发表于 2024-1-12 19:50:55

php实现发放指定金额和数量的红包但领取总金额不得超过发放金额

以下是一个简单的PHP函数,用于群发红包,指定红包数量和总金额,确保领取总金额不得高于指定金额。这里使用了随机生成金额的方式来实现:

<?php

function sendRedPackets($totalAmount, $totalPackets) {
    $redPackets = [];

    // 随机生成红包金额
    for ($i = 1; $i <= $totalPackets; $i++) {
      // 最后一个红包的时候,剩余的金额全部分给最后一个人
      if ($i == $totalPackets) {
            $amount = $totalAmount;
      } else {
            // 随机生成一个金额,确保总金额不被超过
            $maxAmount = $totalAmount - array_sum($redPackets);
            $amount = mt_rand(1, $maxAmount / ($totalPackets - $i + 1));
      }

      // 将金额放入红包数组
      $redPackets[] = $amount;
    }

    return $redPackets;
}

// 指定总金额和红包数量
$totalAmount = 100; // 总金额
$totalPackets = 10; // 红包数量

// 调用函数发送红包
$redPackets = sendRedPackets($totalAmount, $totalPackets);

// 输出红包金额
echo "红包金额分配情况:<br>";
for ($i = 0; $i < count($redPackets); $i++) {
    echo "红包 {$i + 1}: {$redPackets[$i]} 元<br>";
}

?>
这个例子中,红包的金额是随机生成的,确保了总金额不被超过。你可以根据实际需求对该函数进行调整。

页: [1]
查看完整版本: php实现发放指定金额和数量的红包但领取总金额不得超过发放金额