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 相关文章推荐
WINDOWS服务器安装多套PHP的另类解决方案
Oct 09 PHP
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
phpmyadmin 访问被拒绝的真实原因
Jun 15 PHP
PHP 计算代码执行耗时的代码修正网上普遍错误
May 14 PHP
如何使用PHP计算上一个月的今天
May 23 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
php动态绑定变量的用法
Jun 16 PHP
PHP使用正则表达式获取微博中的话题和对象名
Jul 18 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
phpmyadmin在宝塔面板里进不去的解决方案
Jul 06 PHP
Laravel中Kafka的使用详解
Mar 24 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语法(4)
2006/10/09 PHP
用PHP的ob_start() 控制您的浏览器cache
2009/08/03 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
CodeIgniter整合Smarty的方法详解
2017/08/25 PHP
利用jQuery接受和处理xml数据的代码(.net)
2011/03/28 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
2015/02/13 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
2017/05/19 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
JavaScript实现旋转轮播图
2020/08/18 Javascript
react router 4.0以上的路由应用详解
2017/09/21 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
JavaScript循环遍历你会用哪些之小结篇
2018/09/28 Javascript
JS实现li标签的删除
2019/04/12 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
python如何查看系统网络流量的信息
2016/09/12 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
详解python读取和输出到txt
2019/03/29 Python
python 执行终端/控制台命令的例子
2019/07/12 Python
python实现五子棋游戏(pygame版)
2020/01/19 Python
基于python实现模拟数据结构模型
2020/06/12 Python
周仰杰(JIMMY CHOO)法国官方网站:闻名世界的鞋子品牌
2019/09/27 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
工厂实习感言
2014/01/14 职场文书
倡议书的写法
2014/08/30 职场文书
村干部四风问题整改措施
2014/09/30 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
楚门的世界观后感
2015/06/03 职场文书
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技