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 相关文章推荐
一个用php实现的获取URL信息的类
Jan 02 PHP
php 连接mssql数据库 初学php笔记
Mar 01 PHP
php下保存远程图片到本地的办法
Aug 08 PHP
Windows 下的 PHP-PEAR 安装方法
Nov 20 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
php使用COPY函数更新配置文件的方法
Jun 18 PHP
PHP中类的继承和用法实例分析
May 24 PHP
php文件管理基本功能简单操作
Jan 16 PHP
curl 出现错误的调试方法(必看)
Feb 13 PHP
基于laravel where的高级使用方法
Oct 10 PHP
php实现记事本案例
Oct 20 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
PHP 函数语法介绍一
2009/06/14 PHP
php curl常见错误:SSL错误、bool(false)
2011/12/28 PHP
javascript JSON操作入门实例
2010/04/16 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
Egret引擎开发指南之发布项目
2014/09/03 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
基于vue实现分页效果
2017/11/06 Javascript
Angular中管道操作符(|)的使用方法
2017/12/15 Javascript
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
pycharm 使用心得(四)显示行号
2014/06/05 Python
python读取和保存图片5种方法对比
2018/09/12 Python
python求解数组中两个字符串的最小距离
2018/09/27 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Python常见数据类型转换操作示例
2019/05/08 Python
windows中安装Python3.8.0的实现方法
2019/11/19 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
Python进行统计建模
2020/08/10 Python
python使用布隆过滤器的实现示例
2020/08/20 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
我们的节日清明节活动方案
2014/03/05 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
目标责任书格式
2014/07/28 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
行政处罚告知书
2015/07/01 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
JavaScript流程控制(分支)
2021/12/06 Javascript
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技