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 相关文章推荐
15个小时----从修改程序到自己些程序
Oct 09 PHP
分享PHP入门的学习方法
Jan 02 PHP
php木马攻击防御之道
Mar 24 PHP
MySQL数据源表结构图示
Jun 05 PHP
php下将XML转换为数组
Jan 01 PHP
简单的php数据库操作类代码(增,删,改,查)
Apr 08 PHP
WordPress用户登录框密码的隐藏与部分显示技巧
Dec 31 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 PHP
PHPExcel简单读取excel文件示例
May 26 PHP
解析 thinkphp 框架中的部分方法
May 07 PHP
phpStorm+XDebug+chrome 配置详解
Apr 01 PHP
如何用PHP实现分布算法之一致性哈希算法
May 26 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
PHP容易忘记的知识点分享
2013/04/30 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
解决php表单重复提交实现方法
2015/09/29 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
PHP通过文件保存和更新信息的方法分析
2019/09/12 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
JS求平均值的小例子
2013/11/29 Javascript
JS根据年月获得当月天数的实现代码
2014/07/03 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
Vue递归实现树形菜单方法实例
2018/11/06 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
微信小程序制作表格的方法
2019/02/14 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
Node.js API详解之 timer模块用法实例分析
2020/05/07 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
python将txt文档每行内容循环插入数据库的方法
2018/12/28 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
详解python tkinter 图片插入问题
2020/09/03 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
高中军训的心得体会
2014/09/01 职场文书
关于安全的广播稿
2014/10/23 职场文书
大学生实训报告总结
2014/11/05 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书