首頁 php教程 php手册 3行代码的分页算法(求起始页和结束页)

3行代码的分页算法(求起始页和结束页)

Jun 21, 2016 am 08:52 AM
count end link start

 

  涉及到分页时, 除非只显示上一页/下一页, 否则需要计算起始页和结束页. 看过很多代码都是用大量的if-else来实现, 代码量大, 又不简洁. 现在提供一种只需要3行代码的算法.

  一个好的分页算法, 应该具有下面的优点:

  当前页码应该尽量在正中间.

  如果”首页”和”尾页”不可用(当前处于第一页或最后一页), 不要隐藏这两组文字, 以免链接按钮位置变动.

  算法简单.

  下面的算法具有前面1和3两个优点.

  PHP:

  // $curr_index, 当前页码.

  // $link_count, 链接数量.

  // $page_count, 当前的数据的总页数.

  // $start, 显示时的起始页码.

  // $end, 显示时的终止页码.

  $start = max(1, $curr_index - intval($link_count/2));

  $end = min($start + $link_count - 1, $page_count);

  $start = max(1, $end - $link_count + 1);

  JavaScript:

  start = Math.max(1, curr_index - parseInt(link_count/2));

  end = Math.min(page_count, start + link_count - 1);

  start = Math.max(1, end - link_count + 1);



本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

鍵盤end是哪個鍵 鍵盤end是哪個鍵 Mar 10, 2023 am 11:30 AM

鍵盤end就是鍵盤上顯示「End」字樣的鍵;在編輯文字時,若遊標不在最後,按下END鍵,遊標就會定位到最後面;如果是一篇文檔,按下「CTRL+END」組合鍵後,遊標會定位到文件的最後。

docker start起不來怎麼辦 docker start起不來怎麼辦 Oct 21, 2022 pm 03:43 PM

docker start起不來的解決方法:1、檢查運作狀態,然後透過「echo 3 > /proc/sys/vm/drop_caches」指令釋放被佔用的記憶體;2、透過「$netstat -nltp|grep .. .”指令檢查連接埠是否已被佔用,如果上線後發現佔有,則改為可用埠再重啟即可。

counta和count的區別 counta和count的區別 Nov 20, 2023 am 10:01 AM

Count函數用於計算指定範圍內數字的個數。它忽略文字、邏輯值和空值,但會將空白儲存格計算在內,Count函數只計算包含實際數字的儲存格數量。而CountA函數用於計算指定範圍內非空單元格的個數。它不僅計算包含實際數字的儲存格,還計算包含文字、邏輯值和公式等非空白儲存格的數量。

node start 報錯怎麼辦 node start 報錯怎麼辦 Dec 29, 2022 pm 01:55 PM

node start報錯的解決方法:1、直接在終端機執行「node xx.js」;2、新增start啟動項目「 "scripts": {"test": "echo \"Error: no test specified\" && exit 1 ","start":"node service.js"}」;3、重新執行「npm start」即可。

link和import的區別細說:分析它們有何不同? link和import的區別細說:分析它們有何不同? Jan 06, 2024 am 08:19 AM

深入解析:link與import的差別是什麼?在開發網頁或應用程式時,我們經常需要引入外部的CSS檔案或JavaScript庫來增強或自訂我們的程式碼。在這個過程中,link和import是兩種常用的方法。雖然它們的目的都是引入外部資源,但在具體的使用上有一些差異。語法與位置:link:使用link標籤將外部資源連結到HTML檔案中,通常位於HTML文件的頭

link標籤和import有什麼差別 link標籤和import有什麼差別 Aug 28, 2023 am 11:19 AM

link標籤和import的差異有語法和用途、功能和特性、載入時機、相容性和支援等。詳細介紹:1、語法和用途,link標籤是HTML標籤,用於在HTML文件中引入外部資源,如CSS樣式表、JavaScript腳本、圖示等,import是ES6中的模組導入語法,用於在JavaScript文件中引入外部模組;2、功能和特性,link標籤可以引入多種資源,如CSS樣式表、圖示等等。

link標籤與a標籤的不同之處 link標籤與a標籤的不同之處 Feb 19, 2024 pm 06:16 PM

link標籤和a標籤是HTML中常用的兩種標籤,它們有著不同的功能和用法。 link標籤link標籤主要用於在HTML文件中引入外部資源,通常用於引入外部樣式表(CSS文件),也可以用於引入其他類型的文件,如圖像文件、音訊文件等。 link標籤位於標籤中,通常寫在其他元資料(如標籤)的後面。 link標籤的基本語法格

使用link和import有什麼差別 使用link和import有什麼差別 Sep 18, 2023 pm 02:30 PM

使用link和import的差異在功能、用途、引入方式、相容性和適用場景等。詳細介紹:1、link標籤用於引入外部樣式表,它可以將外部樣式表與HTML文件關聯起來,從而控製文件的樣式和佈局,link標籤可以在HTML文件的head部分或body部分中使用;2 、import標籤用於引入外部HTML文檔,它可以將一個HTML文檔嵌入到另一個HTML文檔中,模組化和重複使用等等。

See all articles