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的无限分类实现想法~
Jan 02 PHP
PHP syntax error, unexpected $end 错误的一种原因及解决
Oct 25 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
PHP6 mysql连接方式说明
Feb 09 PHP
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
php+mysql数据库实现无限分类的方法
Dec 12 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
PHP使用反射机制实现查找类和方法的所在位置
Apr 22 PHP
PHP观察者模式示例【Laravel框架中有用到】
Jun 15 PHP
php workerman定时任务的实现代码
Dec 23 PHP
PHP回调函数简单用法示例
May 08 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文件读取方法实例分析
2015/06/20 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
php数组函数array_walk用法示例
2016/05/26 PHP
php实现的简单中文验证码功能示例
2017/01/03 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
js去除重复字符串两种实现方法
2013/01/09 Javascript
解析javascript 浏览器关闭事件
2013/07/08 Javascript
js jquery获取随机生成id的服务器控件的三种方法
2013/07/11 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
原生js二级联动效果
2017/06/20 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
关于vue属性使用和不使用冒号的区别说明
2020/10/22 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
python 数据库查询返回list或tuple实例
2020/05/15 Python
30行Python代码实现高分辨率图像导航的方法
2020/05/22 Python
基于第一个PhoneGap(cordova)的应用详解
2013/05/03 HTML / CSS
美国排名第一的葡萄酒俱乐部:Firstleaf Wine Club
2020/01/02 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
C语言基础笔试题
2013/04/27 面试题
《苏珊的帽子》教学反思
2014/04/07 职场文书
暑假学习心得体会
2014/09/02 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
检察院起诉意见书
2015/05/20 职场文书
处罚决定书范文
2015/06/24 职场文书
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server