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+JS无限级可伸缩菜单详解(简单易懂)
Jan 02 PHP
PHP 开发环境配置(Zend Studio)
Apr 28 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
php格式化时间戳显示友好的时间实现思路及代码
Oct 23 PHP
php查找指定目录下指定大小文件的方法
Nov 28 PHP
PHP验证信用卡卡号是否正确函数
May 27 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
PHP目录与文件操作技巧总结(创建,删除,遍历,读写,修改等)
Sep 11 PHP
PHP正则匹配日期和时间(时间戳转换)的实例代码
Dec 14 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 PHP
Swoole扩展的6种模式深入详解
Mar 04 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中遍历stdclass object的实现代码
2011/06/09 PHP
php设计模式 Composite (组合模式)
2011/06/26 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
php创建多级目录与级联删除文件的方法示例
2019/09/12 PHP
分享JavaScript获取网页关闭与取消关闭的事件
2013/12/13 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
2015/09/01 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
详解基于angular-cli配置代理解决跨域请求问题
2017/07/05 Javascript
Vue 2.5.2下axios + express 本地请求404的解决方法
2018/02/21 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
python中文乱码的解决方法
2013/11/04 Python
Python中用于去除空格的三个函数的使用小结
2015/04/07 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
win10下tensorflow和matplotlib安装教程
2018/09/19 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
Python实现微信机器人的方法
2019/09/06 Python
python实现复制文件到指定目录
2019/10/16 Python
TensorFlow绘制loss/accuracy曲线的实例
2020/01/21 Python
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
西班牙床垫网上商店:Colchones.es
2018/05/06 全球购物
幼儿园优秀班主任事迹材料
2014/05/14 职场文书
单位工作证明书格式
2014/10/04 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL