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 has encountered an Access Violation
Jan 15 PHP
php print EOF实现方法
May 21 PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 PHP
ThinkPHP视图查询详解
Jun 30 PHP
php多任务程序实例解析
Jul 19 PHP
php使用cookie实现记住登录状态
Apr 27 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
PHP与服务器文件系统的简单交互
Oct 21 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
Yii2.0建立公共方法简单示例
Jan 29 PHP
thinkPHP框架RBAC实现原理分析
Feb 01 PHP
TP5框架请求响应参数实例分析
Oct 17 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批量缩放图片的代码[ini参数控制]
2011/02/11 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
PHP基于array_unique实现二维数组去重
2020/07/14 PHP
PHP7修改的函数
2021/03/09 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
Angular.JS中的this指向详解
2017/05/17 Javascript
在vue-cli脚手架中配置一个vue-router前端路由
2017/07/03 Javascript
详解JS数据类型的值拷贝函数(深拷贝)
2017/07/13 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python sys,os,time模块的使用(包括时间格式的各种转换)
2018/04/27 Python
Django进阶之CSRF的解决
2018/08/01 Python
使用python进行拆分大文件的方法
2018/12/10 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
python属于解释型语言么
2020/06/15 Python
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
少先队学雷锋活动总结范文
2014/03/09 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
三峡人家导游词
2015/01/31 职场文书
学校运动会简讯
2015/07/20 职场文书
2016年妇联“6﹒26国际禁毒日”宣传活动总结
2016/04/05 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang
有趣的二维码:使用MyQR和qrcode来制作二维码
2021/05/10 Python
python 经纬度求两点距离、三点面积操作
2021/06/03 Python
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS