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 15 PHP
php显示指定目录下子目录的方法
Mar 20 PHP
php中实现可以返回多个值的函数实例
Mar 21 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
thinkPHP查询方式小结
Jan 09 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
浅谈PHP中的数据传输CURL
Sep 06 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
PHP magento后台无法登录问题解决方法
Nov 24 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 PHP
PHP的curl函数的用法总结
Feb 14 PHP
浅谈laravel框架sql中groupBy之后排序的问题
Oct 17 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
example1.php
2006/10/09 PHP
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
php下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
php简单的会话类代码
2011/08/08 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
实例讲解PHP表单
2020/06/10 PHP
IE中的File域无法清空使用jQuery重设File域
2014/04/24 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
谈谈encodeURI和encodeURIComponent以及escape的区别与应用
2015/11/24 Javascript
关于input全选反选恶心的异常情况
2016/07/24 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
Python中运行并行任务技巧
2015/02/26 Python
Python深度优先算法生成迷宫
2018/01/22 Python
Python实现的读写json文件功能示例
2018/06/05 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
Python实现的多进程拷贝文件并显示百分比功能示例
2019/04/09 Python
Python+Selenium使用Page Object实现页面自动化测试
2019/07/14 Python
Python实现对adb命令封装
2020/03/06 Python
Python-openCV开运算实例
2020/07/05 Python
Python 发送邮件方法总结
2020/08/10 Python
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
TALLY WEiJL法国网上商店:服装、时装及配饰
2019/08/31 全球购物
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
如何进行Linux分区优化
2016/09/13 面试题
一套Delphi的笔试题二
2013/05/11 面试题
中学生在校期间的自我评价分享
2013/11/13 职场文书
2015年公司中秋节致辞
2015/07/31 职场文书