PHP实现微信发红包程序


Posted in PHP onAugust 24, 2015

使用PHP发红包,当我们输入红包数量和总金额后,PHP会根据这两个值进行随机分配每个金额,保证每个人都能领取到一个红包,每个红包金额不等,就是要求红包金额要有差异,所有红包金额总额应该等于总金额。

查看演示                        下载源码

首先给大家分析下规律。

设定总金额为10元,有N个人随机领取:

N=1 第一个

则红包金额=X元;

N=2 第二个

为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数。

第二个红包=10-第一个红包金额;

N=3 第三个

红包1=0.01至9.99之间的某个随机数

红包2=0.01至(10-红包1-0.01)的某个随机数

红包3=10-红包1-红包2

……

于是我们得到一个规律,在分配当前红包金额时,先预留剩余红白所需最少金额,然后在0.01至总金额-预留金额间取随机数,得到的随机数就是当前红包分配的金额。

实际应用中,程序先将红包金额分配好,即发红包时,红包个数以及每个红包的金额都分配好了,那么用户来抢红包时,我们随机给用户返回一个红包即可。

红包分配代码:

$total=20;//红包总金额 
$num=10;// 分成10个红包,支持10人随机领取 
$min=0.01;//每个人最少能收到0.01元 
for ($i=1;$i<$num;$i++) 
{ 
 $safe_total=($total-($num-$i)*$min)/($num-$i);//随机安全上限 
 $money=mt_rand($min*100,$safe_total*100)/100; 
 $total=$total-$money; 
 echo '第'.$i.'个红包:'.$money.' 元,余额:'.$total.' 元 '; 
}
echo '第'.$num.'个红包:'.$total.' 元,余额:0 元';

运行以上代码,会输出以下结果:

第1个红包,金额2.08元,余额17.92元

第2个红包,金额1.81元,余额16.11元

第3个红包,金额0.15元,余额15.96元

第4个红包,金额1.61元,余额14.35元

第5个红包,金额1.11元,余额13.24元

第6个红包,金额1.51元,余额11.73元

第7个红包,金额1.21元,余额10.52元

第8个红包,金额2.58元,余额7.94元

第9个红包,金额5.4元,余额2.54元

第10个红包,金额2.54元,余额0元

以上就是使用php实现微信发红包程序,希望对大家有所帮助,有需要源码的朋友,可以直接下载。

PHP 相关文章推荐
PHP4实际应用经验篇(6)
Oct 09 PHP
与数据库连接
Oct 09 PHP
谈谈新手如何学习PHP
Dec 14 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
Sep 30 PHP
php格式化电话号码的方法
Apr 24 PHP
如何使用jQuery+PHP+MySQL来实现一个在线测试项目
Apr 26 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
php实现word转html的方法
Jan 22 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
yii2控制器Controller Ajax操作示例
Jul 23 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 #PHP
php实现递归的三种基本方式
Jul 04 #PHP
php析构函数的简单使用说明
Aug 24 #PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 #PHP
dvwa+xampp搭建显示乱码的问题及解决方案
Aug 23 #PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 #PHP
使用PHP进行微信公众平台开发的示例
Aug 21 #PHP
You might like
超级实用的7个PHP代码片段分享
2012/01/05 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
一段批量给页面上的控件赋值js
2010/06/19 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
js遍历td tr等html元素
2012/12/13 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
JavaScript编写推箱子游戏
2015/07/07 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
NodeJS实现客户端js加密
2017/01/09 NodeJs
jquery实现提示语淡入效果
2017/05/05 jQuery
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
BootStrap modal实现拖拽功能
2018/12/01 Javascript
[54:10]完美世界DOTA2联赛PWL S2 Magma vs FTD 第二场 11.29
2020/12/03 DOTA
Django发送html邮件的方法
2015/05/26 Python
Python实现合并字典的方法
2015/07/07 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
Python图像滤波处理操作示例【基于ImageFilter类】
2019/01/03 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
python设置中文界面实例方法
2020/10/27 Python
行政助理的职责
2013/11/14 职场文书
网管求职信
2014/03/03 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
法人代表委托书
2014/04/04 职场文书
仓库规划计划书
2014/04/28 职场文书
无刑事犯罪记录证明范本
2014/09/29 职场文书
万能检讨书2000字
2014/10/17 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
大学生见习报告总结
2014/11/04 职场文书
中小企业员工手册范本
2015/05/14 职场文书
永远是春天观后感
2015/06/12 职场文书
科学家测试在太空中培育人造肉,用于未来太空旅行
2022/04/29 数码科技