php 3行代碼的分頁算法(求起始頁和結束頁)
更新時間:2009年10月21日 14:15:19 作者:
涉及到分頁時, 除非只顯示上一頁/下一頁, 否則需要計算起始頁和結束頁. 看過很多代碼都是用大量的if-else來實現(xiàn), 代碼量大, 又不簡潔. 現(xiàn)在提供一種只需要3行代碼的算法.
一個好的分頁算法, 應該具有下面的優(yōu)點:
當前頁碼應該盡量在正中間.
如果"首頁"和"尾頁"不可用(當前處于第一頁或最后一頁), 不要隱藏這兩組文字, 以免鏈接按鈕位置變動.
算法簡單.
下面的算法具有前面1和3兩個優(yōu)點.
// $curr_index, 當前頁碼.
// $link_count, 鏈接數(shù)量.
// $page_count, 當前的數(shù)據(jù)的總頁數(shù).
// $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);
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);
當前頁碼應該盡量在正中間.
如果"首頁"和"尾頁"不可用(當前處于第一頁或最后一頁), 不要隱藏這兩組文字, 以免鏈接按鈕位置變動.
算法簡單.
下面的算法具有前面1和3兩個優(yōu)點.
復制代碼 代碼如下:
// $curr_index, 當前頁碼.
// $link_count, 鏈接數(shù)量.
// $page_count, 當前的數(shù)據(jù)的總頁數(shù).
// $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);
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);
相關文章
Laravel模板引擎Blade中section的一些標簽的區(qū)別介紹
這篇文章主要介紹了Laravel模板引擎Blade中section的一些標簽的區(qū)別介紹,本文講解了@yield 與 @section、@show 與 @stop、@append 和 @override的區(qū)別,需要的朋友可以參考下2015-02-02php5.5新數(shù)組函數(shù)array_column使用
array_column 用于獲取二維數(shù)組中的元素(PHP 5 >= 5.5.0),但我們有時候需要在低版本中使用,那么就可以使用下面的代碼即可2013-07-07PHP實現(xiàn)對png圖像進行縮放的方法(支持透明背景)
這篇文章主要介紹了PHP實現(xiàn)對png圖像進行縮放的方法(支持透明背景),可實現(xiàn)php針對png圖像的縮放功能,且支持透明背景,具有一定參考借鑒價值,需要的朋友可以參考下2015-07-07