php实现excel中rank函数功能的方法


Posted in PHP onJanuary 20, 2015

本文实例讲述了php实现excel中rank函数功能的方法。分享给大家供大家参考。具体分析如下:

sql语句实现排名是像这样的如:
总分成绩为 195,180,180,161,名次分别为1,2,3,4,遇到并列的情况也是按照顺序的,
而Excel函数rank排名得到的结果是1,2,2,4,遇到并列跳过中间的3
下面的函数模拟的就是这种情况
函数如下(不知道有没有更好的实现方法):
公式为: 名次=总人数--比自己小的数的个数-这个分数重复次数+1(加上自己)
得到名次的数组再根据对应的id写入到数据库,就实现rank的计算功能
(当然这个也可以改成这样195,180,180,165,名次是这样的1,2,2,3)

//获得一组数的名次的数组

function rank(array $array){

        foreach($array as $val){

                $repeat=get_array_repeats($val,$array);

                $num=gt_array_values($val,$array);

                $rank[]=count($array)-$num-$repeat+1;

        }

        return $rank;

}
//获得比自己数小的个数

function gt_array_values($val,array $array){

        $num=0;

        for($i=0;$i<count($array);$i++){

                if($val>$array[$i]){

                        $num++;

                }

        }

        return $num;

}

//获得这个数的重复次数
function get_array_repeats($string,array $array) {

        $count = array_count_values($array);

        foreach ($count as $key => $value) {

                 if ($key == $string) {

                  return $value;

                  }

         }

}

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

PHP 相关文章推荐
php中常用编辑器推荐
Jan 02 PHP
php GD绘制24小时柱状图
Jun 28 PHP
360通用php防护代码(使用操作详解)
Jun 18 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
Mar 18 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
摘自织梦CMS的HTTP文件下载类
Aug 08 PHP
php上传图片并压缩的实现方法
Dec 22 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 PHP
Thinkphp自定义生成缩略图尺寸的方法
Aug 05 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
PHP中error_log()函数的使用方法
Jan 20 #PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
Jan 20 #PHP
php中解析带中文字符的url函数分享
Jan 20 #PHP
PHP中使用正则表达式提取中文实现笔记
Jan 20 #PHP
php中的观察者模式简单实例
Jan 20 #PHP
php 5.6版本中编写一个PHP扩展的简单示例
Jan 20 #PHP
PHP函数extension_loaded()用法实例
Jan 19 #PHP
You might like
PHP session常见问题集锦及解决办法总结
2007/03/18 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
javascript内置对象arguments详解
2014/03/16 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
2015/04/12 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
vue axios 简单封装以及思考
2018/10/09 Javascript
laydate时间日历插件使用方法详解
2018/11/14 Javascript
Vue配置marked链接添加target=&quot;_blank&quot;的方法
2019/07/19 Javascript
flexible.js实现移动端rem适配方案
2020/04/07 Javascript
Element InfiniteScroll无限滚动的具体使用方法
2020/07/27 Javascript
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
Python类的用法实例浅析
2015/05/27 Python
为什么选择python编程语言入门黑客攻防 给你几个理由!
2018/02/02 Python
python学习基础之循环import及import过程
2018/04/22 Python
python启动应用程序和终止应用程序的方法
2019/06/28 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
露营世界:Camping World
2017/02/02 全球购物
英国著名书店:Foyles
2018/12/01 全球购物
学生就业推荐信
2013/11/13 职场文书
行政总经理岗位职责
2013/12/05 职场文书
表彰先进集体通报
2014/01/12 职场文书
简历里的自我评价范文
2014/02/24 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
上班迟到检讨书300字
2014/10/18 职场文书
小学教师自我评价
2015/03/04 职场文书
四年级数学教学反思
2016/02/16 职场文书