php简单计算权重的方法示例【适合抽奖类应用】


Posted in PHP onJune 10, 2019

本文实例讲述了php简单计算权重的方法。分享给大家供大家参考,具体如下:

//简单权重计算器
$data222=array(
  0=>array('id'=>1,'name'=>'一等奖','weight'=>'3'),
  1=>array('id'=>2,'name'=>'二等奖','weight'=>'1'),
  2=>array('id'=>3,'name'=>'三等奖','weight'=>'5'),
  3=>array('id'=>3,'name'=>'三等奖','weight'=>'1'),
);
// 权重数值越高,被返回的概率越大
// 原理生成权重个数的数组字,入array(5个0,10个1,25个2)
function countWeight($data){
  $i=0;
  $temp=array();
  foreach($data as $v){
    for($i=0;$i<$v['weight'];$i++){
      $temp[]=$v;//放大数组
    }
  }
  $num = count($temp);  //查看网上的有错误,本人已改正
  $int=mt_rand(0,$num-1);//获取一个随机数
  $result=$temp[$int];
  return $result;  //返回一维数组
}
echo '<pre>';
var_dump(countWeight($data222));

执行后的效果为

array(3) {
  ["id"]=>
  int(2)
  ["name"]=>
  string(9) "二等奖"
  ["weight"]=>
  string(2) "10"
}

PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(1)
Oct 09 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
Sep 30 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
php中用加号与用array_merge合并数组的区别深入分析
Jun 03 PHP
php实现文件下载代码分享
Aug 19 PHP
ThinkPHP中RBAC类的四种用法分析
Nov 24 PHP
PHP+MySQL实现的简单投票系统实例
Feb 24 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
May 22 PHP
PHP类相关知识点实例总结
Sep 28 PHP
php封装的smarty类完整实例
Oct 19 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
Jun 08 #PHP
php使用scandir()函数扫描指定目录下所有文件示例
Jun 08 #PHP
php中目录操作opendir()、readdir()及scandir()用法示例
Jun 08 #PHP
php中字符串和整数比较的操作方法
Jun 06 #PHP
使用PHPWord生成word文档的方法详解
Jun 06 #PHP
php/JS实现的生成随机密码(验证码)功能示例
Jun 06 #PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 #PHP
You might like
php file_get_contents函数轻松采集html数据
2010/04/22 PHP
PHP和C#可共用的可逆加密算法详解
2015/10/26 PHP
Yii2.0中的COOKIE和SESSION用法
2016/08/12 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
Yii2.0 RESTful API 基础配置教程详解
2018/12/26 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
vue axios同步请求解决方案
2017/09/29 Javascript
input type=file 选择图片并且实现预览效果的实例
2017/10/26 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
[01:09]DOTA2次级职业联赛 - ishow.HMM战队宣传片
2014/12/01 DOTA
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
python脚本实现查找webshell的方法
2014/07/31 Python
Django 2.0版本的新特性抢先看!
2018/01/05 Python
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
2020/02/28 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
Python logging模块异步线程写日志实现过程解析
2020/06/30 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
火箭队口号
2014/06/18 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
2015年感恩父亲节演讲稿
2015/03/19 职场文书
2015年教师工作总结范文
2015/03/31 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
毕业论文答辩开场白和答辩技巧
2015/05/27 职场文书
《田忌赛马》教学反思
2016/02/19 职场文书
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android