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 相关文章推荐
Zend公司全球首推PHP认证
Oct 09 PHP
PHP 分页类(模仿google)-面试题目解答
Sep 13 PHP
网站用php实现paypal整合方法
Nov 28 PHP
php重定向的三种方法分享
Feb 22 PHP
PHP中数组的分组排序实例
Jun 01 PHP
php防止伪造的数据从URL提交方法
Jun 27 PHP
YII路径的用法总结
Jul 09 PHP
PHP对文件夹递归执行chmod命令的方法
Jun 19 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
php连接mysql数据库
Mar 21 PHP
PHP调用Mailgun发送邮件的方法
May 04 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
Aug 12 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(1)
2006/10/09 PHP
php empty函数 使用说明
2009/08/10 PHP
PHP性能优化 产生高度优化代码
2011/07/22 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
JQuery 常用方法基础教程
2009/02/06 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
用Js实现的动态增加表格示例自己写的
2013/10/21 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
详解JavaScript事件循环机制
2018/09/07 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
使用FormData实现上传多个文件
2018/12/04 Javascript
javascript实现点击产生随机图形
2021/01/25 Javascript
使用Python脚本来控制Windows Azure的简单教程
2015/04/16 Python
python提取页面内url列表的方法
2015/05/25 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
2018/03/30 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
Python 创建TCP服务器的方法
2020/07/28 Python
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
电脑饰品店的创业计划书
2014/01/21 职场文书
超市端午节活动方案
2014/01/23 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
2015年安全生产责任书
2015/01/30 职场文书
产品质量保证书范本
2015/02/27 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL