php 3行代碼的分頁算法(求起始頁和結(jié)束頁)
更新時(shí)間:2009年10月21日 14:15:19 作者:
涉及到分頁時(shí), 除非只顯示上一頁/下一頁, 否則需要計(jì)算起始頁和結(jié)束頁. 看過很多代碼都是用大量的if-else來實(shí)現(xiàn), 代碼量大, 又不簡(jiǎn)潔. 現(xiàn)在提供一種只需要3行代碼的算法.
一個(gè)好的分頁算法, 應(yīng)該具有下面的優(yōu)點(diǎn):
當(dāng)前頁碼應(yīng)該盡量在正中間.
如果"首頁"和"尾頁"不可用(當(dāng)前處于第一頁或最后一頁), 不要隱藏這兩組文字, 以免鏈接按鈕位置變動(dòng).
算法簡(jiǎn)單.
下面的算法具有前面1和3兩個(gè)優(yōu)點(diǎn).
// $curr_index, 當(dāng)前頁碼.
// $link_count, 鏈接數(shù)量.
// $page_count, 當(dāng)前的數(shù)據(jù)的總頁數(shù).
// $start, 顯示時(shí)的起始頁碼.
// $end, 顯示時(shí)的終止頁碼.
$start = max(1, $curr_index - intval($link_count/2));
$end = min($start + $link_count - 1, $page_count);
$start = max(1, $end - $link_count + 1);
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);
當(dāng)前頁碼應(yīng)該盡量在正中間.
如果"首頁"和"尾頁"不可用(當(dāng)前處于第一頁或最后一頁), 不要隱藏這兩組文字, 以免鏈接按鈕位置變動(dòng).
算法簡(jiǎn)單.
下面的算法具有前面1和3兩個(gè)優(yōu)點(diǎn).
復(fù)制代碼 代碼如下:
// $curr_index, 當(dāng)前頁碼.
// $link_count, 鏈接數(shù)量.
// $page_count, 當(dāng)前的數(shù)據(jù)的總頁數(shù).
// $start, 顯示時(shí)的起始頁碼.
// $end, 顯示時(shí)的終止頁碼.
$start = max(1, $curr_index - intval($link_count/2));
$end = min($start + $link_count - 1, $page_count);
$start = max(1, $end - $link_count + 1);
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);
您可能感興趣的文章:
相關(guān)文章
Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹
這篇文章主要介紹了Laravel模板引擎Blade中section的一些標(biāo)簽的區(qū)別介紹,本文講解了@yield 與 @section、@show 與 @stop、@append 和 @override的區(qū)別,需要的朋友可以參考下2015-02-02PHP與MongoDB簡(jiǎn)介|安全|M+PHP應(yīng)用實(shí)例詳解
本篇文章是對(duì)PHP中的MongoDB簡(jiǎn)介|安全|M+PHP應(yīng)用實(shí)例進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php對(duì)xml文件的增刪改查操作實(shí)現(xiàn)方法分析
這篇文章主要介紹了php對(duì)xml文件的增刪改查操作實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式分析了php對(duì)xml文件的載入及xml節(jié)點(diǎn)的讀取、修改、查詢等相關(guān)操作技巧,需要的朋友可以參考下2017-05-05php5.5新數(shù)組函數(shù)array_column使用
array_column 用于獲取二維數(shù)組中的元素(PHP 5 >= 5.5.0),但我們有時(shí)候需要在低版本中使用,那么就可以使用下面的代碼即可2013-07-07php統(tǒng)計(jì)文件大小,以GB、MB、KB、B輸出
學(xué)習(xí)了fread讀取命令,用到了filesize函數(shù),知道這個(gè)函數(shù)定大有用到的時(shí)候,遂用之編寫統(tǒng)計(jì)文件大小函數(shù)2011-05-05PHP實(shí)現(xiàn)對(duì)png圖像進(jìn)行縮放的方法(支持透明背景)
這篇文章主要介紹了PHP實(shí)現(xiàn)對(duì)png圖像進(jìn)行縮放的方法(支持透明背景),可實(shí)現(xiàn)php針對(duì)png圖像的縮放功能,且支持透明背景,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07