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&amp;mysql(二)
Oct 09 PHP
用 PHP5 轻松解析 XML
Dec 04 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
PHP获取文件行数的方法
Jun 10 PHP
PHP中substr函数字符串截取用法分析
Jan 07 PHP
php session 写入数据库
Feb 13 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
Sep 22 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
在laravel中使用Symfony的Crawler组件分析HTML
Jun 19 PHP
Laravel中10个有用的用法小结
May 06 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代码
2007/03/08 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
php连接mysql数据库最简单的实现方法
2019/09/24 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
js控制table合并具体实现
2014/02/20 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
基于angular-utils-ui-breadcrumbs使用心得(分享)
2017/11/03 Javascript
JavaScript 正则命名分组【推荐】
2018/06/07 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python实现博客文章爬虫示例
2014/02/26 Python
Python使用Mechanize模块编写爬虫的要点解析
2016/03/31 Python
浅谈Python中chr、unichr、ord字符函数之间的对比
2016/06/16 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
浅析Python pandas模块输出每行中间省略号问题
2018/07/03 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
python创建文本文件的简单方法
2020/08/30 Python
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
联想C++笔试题
2012/06/13 面试题
启动一个线程是用run()还是start()
2016/12/25 面试题
应届生法律顾问求职信
2013/11/19 职场文书
物流专业求职计划书
2014/01/10 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
委托证明书
2014/09/17 职场文书
2016年党员岗位承诺书
2016/03/24 职场文书
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
Win11 25163.1010更新补丁KB5016904推送,测试服务验证管道(附更新修复汇总)
2022/07/23 数码科技