php 3行代碼的分頁(yè)算法(求起始頁(yè)和結(jié)束頁(yè))
更新時(shí)間:2009年10月21日 14:15:19 作者:
涉及到分頁(yè)時(shí), 除非只顯示上一頁(yè)/下一頁(yè), 否則需要計(jì)算起始頁(yè)和結(jié)束頁(yè). 看過(guò)很多代碼都是用大量的if-else來(lái)實(shí)現(xiàn), 代碼量大, 又不簡(jiǎn)潔. 現(xiàn)在提供一種只需要3行代碼的算法.
一個(gè)好的分頁(yè)算法, 應(yīng)該具有下面的優(yōu)點(diǎn):
當(dāng)前頁(yè)碼應(yīng)該盡量在正中間.
如果"首頁(yè)"和"尾頁(yè)"不可用(當(dāng)前處于第一頁(yè)或最后一頁(yè)), 不要隱藏這兩組文字, 以免鏈接按鈕位置變動(dòng).
算法簡(jiǎn)單.
下面的算法具有前面1和3兩個(gè)優(yōu)點(diǎn).
// $curr_index, 當(dāng)前頁(yè)碼.
// $link_count, 鏈接數(shù)量.
// $page_count, 當(dāng)前的數(shù)據(jù)的總頁(yè)數(shù).
// $start, 顯示時(shí)的起始頁(yè)碼.
// $end, 顯示時(shí)的終止頁(yè)碼.
$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è)碼應(yīng)該盡量在正中間.
如果"首頁(yè)"和"尾頁(yè)"不可用(當(dāng)前處于第一頁(yè)或最后一頁(yè)), 不要隱藏這兩組文字, 以免鏈接按鈕位置變動(dòng).
算法簡(jiǎn)單.
下面的算法具有前面1和3兩個(gè)優(yōu)點(diǎn).
復(fù)制代碼 代碼如下:
// $curr_index, 當(dāng)前頁(yè)碼.
// $link_count, 鏈接數(shù)量.
// $page_count, 當(dāng)前的數(shù)據(jù)的總頁(yè)數(shù).
// $start, 顯示時(shí)的起始頁(yè)碼.
// $end, 顯示時(shí)的終止頁(yè)碼.
$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);
您可能感興趣的文章:
- PHP寫楊輝三角實(shí)例代碼
- 深入理解PHP幾個(gè)算法:PHP冒泡、PHP二分法、PHP求素?cái)?shù)、PHP乘法表
- PHP求最大子序列和的算法實(shí)現(xiàn)
- php實(shí)現(xiàn)猴子選大王問(wèn)題算法實(shí)例
- PHP貪婪算法解決0-1背包問(wèn)題實(shí)例分析
- php約瑟夫問(wèn)題解決關(guān)于處死犯人的算法
- PHP基于回溯算法解決n皇后問(wèn)題的方法示例
- PHP使用棧解決約瑟夫環(huán)問(wèn)題算法示例
- PHP基于遞歸算法解決兔子生兔子問(wèn)題
- PHP實(shí)現(xiàn)的解漢諾塔問(wèn)題算法示例
- PHP實(shí)現(xiàn)的楊輝三角求解算法分析
相關(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