中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么中php項目中實現一個rank函數功能

發布時間:2020-12-15 16:57:41 來源:億速云 閱讀:272 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關怎么中php項目中實現一個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項目中實現一個rank函數功能就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

册亨县| 大田县| 博爱县| 临漳县| 富裕县| 乌海市| 嵩明县| 炎陵县| 沅江市| 吕梁市| 达孜县| 五河县| 昭通市| 井陉县| 上栗县| 光山县| 锦屏县| 花莲市| 晋江市| 湘潭县| 资阳市| 朝阳市| 邹城市| 新丰县| 衡东县| 临颍县| 磐石市| 宜川县| 株洲市| 襄垣县| 油尖旺区| 明光市| 苏州市| 满洲里市| 南川市| 宁乡县| 通辽市| 海原县| 信丰县| 丹寨县| 额敏县|