php实现按照权重随机排序数据的方法


Posted in PHP onJanuary 09, 2015

本文实例讲述了php实现按照权重随机排序数据的方法。分享给大家供大家参考。

具体实现方法如下:

<?php   

/**  

 * @param array $weight 权重  例如array('a'=>10,'b'=>20,'c'=>50)  

 * @return string key   键名   

 */  

function roll($weight = array()) {   

 $roll = rand ( 1, array_sum ( $weight ) );   

 $_tmpW = 0;   

 $rollnum = 0;   

  foreach ( $weight as $k => $v ) {   

  $min = $_tmpW;   

   $_tmpW += $v;   

   $max = $_tmpW;   

   if ($roll > $min && $roll <= $max) {   

    $rollnum = $k;   

    break;   

   }   

 }   

  return $rollnum;   

}   

 

$row=roll(array('a'=>10,'b'=>20,'c'=>50));   

echo $row;   

?>

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP Memcached + APC + 文件缓存封装实现代码
Mar 11 PHP
深入探讨PHP中的内存管理问题
Aug 31 PHP
php的chr和ord函数实现字符加减乘除运算实现代码
Dec 05 PHP
php数字游戏 计算24算法
Jun 10 PHP
PHP生成随机密码类分享
Jun 25 PHP
最常用的8款PHP调试工具
Jul 06 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 PHP
在 Laravel 6 中缓存数据库查询结果的方法
Dec 11 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 PHP
PHP实现采集抓取淘宝网单个商品信息
Jan 08 #PHP
linux中cd命令使用详解
Jan 08 #PHP
php计划任务之ignore_user_abort函数实现方法
Jan 08 #PHP
网站防止被刷票的一些思路与方法
Jan 08 #PHP
分享常见的几种页面静态化的方法
Jan 08 #PHP
php的ddos攻击解决方法
Jan 08 #PHP
php的sso单点登录实现方法
Jan 08 #PHP
You might like
使用php+Ajax实现唯一校验实现代码[简单应用]
2011/11/29 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
javascript中普通函数的使用介绍
2013/12/19 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
JavaScript将Web页面内容导出到Word及Excel的方法
2015/02/13 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
PhotoSwipe异步动态加载图片方法
2016/08/25 Javascript
详解vue 中使用 AJAX获取数据的方法
2017/01/18 Javascript
JS中的数组转变成JSON格式字符串的方法
2017/05/09 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
Python fileinput模块使用实例
2015/05/28 Python
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
Python Opencv实现图像轮廓识别功能
2020/03/23 Python
Python自定义函数计算给定日期是该年第几天的方法示例
2019/05/30 Python
利用Python绘制有趣的万圣节南瓜怪效果
2019/10/31 Python
有关Tensorflow梯度下降常用的优化方法分享
2020/02/04 Python
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
大女孩胸罩:Big Girls Bras
2016/12/15 全球购物
Smashbox英国官网:美国知名彩妆品牌
2017/11/13 全球购物
西班牙购买隐形眼镜、眼镜和太阳镜网站:Lentiamo.es
2020/06/11 全球购物
运动会广播稿200字
2014/01/15 职场文书
酒店端午节活动方案
2014/08/26 职场文书
体育运动会广播稿
2014/10/05 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
Python实现归一化算法详情
2022/03/18 Python
redis 解决库存并发问题实现数量控制
2022/04/08 Redis
Java 死锁解决方案
2022/05/11 Java/Android