国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php實現excel中rank函數功能的方法

2024-05-04 23:30:13
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了php實現excel中rank函數功能的方法,較為詳細的分析了rank函數的功能及具體實現方法,需要的朋友可以參考下
 

本文實例講述了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程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 灵璧县| 盘锦市| 阿克苏市| 股票| 东台市| 库伦旗| 蓝田县| 三亚市| 丹凤县| 景东| 四子王旗| 财经| 金沙县| 云安县| 卢氏县| 锡林郭勒盟| 应城市| 西藏| 淮南市| 英超| 安图县| 石河子市| 宜丰县| 遂宁市| 平塘县| 洪雅县| 定陶县| 商南县| 简阳市| 靖安县| 固阳县| 普洱| 莆田市| 徐州市| 乐平市| 龙川县| 德庆县| 河池市| 鹿邑县| 兴化市| 鄂温|