PHP實(shí)現(xiàn)對(duì)數(shù)組分頁(yè)處理實(shí)例詳解
本文實(shí)例講述了PHP實(shí)現(xiàn)對(duì)數(shù)組分頁(yè)處理方法。分享給大家供大家參考,具體如下:
最近用到了用數(shù)組數(shù)據(jù)分頁(yè),這里整理了一下,具體代碼如下:
<?php
class PaginationArray{
public $pageArray=array(); //數(shù)組
public $pageSize=10; //每頁(yè)顯示記錄數(shù)
public $current= 1; //當(dāng)前頁(yè)
private $total=0; //總頁(yè)數(shù)
private $prev=0; //上一頁(yè)
private $next=0; //下一頁(yè)
public $argumetsOther='';//設(shè)置參數(shù)
function __construct($array=array(),$pageSize=10,$current=1){
$this->pageArray=$array;
$this->pageSize=$pageSize;
$this->current=$current;
}
/*通過(guò)數(shù)組進(jìn)行初始化
*
* 數(shù)組為關(guān)聯(lián)數(shù)組,參數(shù)索引為pageArray,pageSize,current
*
*/
function setArguments($arr){
if (is_array($arr)){
$this->pageArray=$arr['pageArray'];
$this->pageSize=$arr['pageSize'];
$this->current=$arr['current'];
}else{
return ;
}
}
//返回鏈接
function page(){
$_return=array();
/*calculator*/
$this->total=ceil(Count($this->pageArray)/$this->pageSize);
$this->prev=(($this->current-1)<= 0 ? "1":($this->current-1));
$this->next=(($this->current+1)>=$this->total ? $this->total:$this->current+1);
$current=($this->current>($this->total)?($this->total):$this->current);
$start=($this->current-1)*$this->pageSize;
$arrleng=count($this->pageArray);
for($i=$start;$i<($start+$this->pageSize);$i++){
if($i >= $arrleng)break;
array_push($_return,$this->pageArray[$i]);
}
$pagearray["source"]=$_return;
$pagearray["links"]=$this->linkStyle(2);
return $pagearray;
}
//鏈接的樣式
private function linkStyle($number=1){
$linkStyle='';
switch ($number){
case 1:
$linkStyle="<a href=\"?page=1\">first</a> <a href=\"?page={$this->prev}\">prev</a> <a href=\"?page={$this->next}\">next</a> <a href=\"?page={$this->total}\">end</a>";
break;
case 2:
$linkStyle="<a href=\"?page=1&{$this->argumetsOther}\">首頁(yè)</a> <a href=\"?page={$this->prev}&{$this->argumetsOther}\">上一頁(yè)</a> <a href=\"?page={$this->next}&{$this->argumetsOther}\">下一頁(yè)</a> <a href=\"?page={$this->total}&{$this->argumetsOther}\">尾頁(yè)</a>";
break;
}
return $linkStyle;
}
}
//調(diào)用的實(shí)例
/*
header('Content-Type: text/html;charset=utf-8');
$array=array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20");
$page= isset($_GET['page'])? $_GET['page'] : 1 ;
$arrayPage = new PaginationArray($array,"5",$page);
$r = $arrayPage->page();
foreach($r["source"] as $s){
echo $s.'<br />';
}
echo $r["links"];
*/
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+mysql數(shù)據(jù)庫(kù)操作入門教程》、《php+mysqli數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php性能優(yōu)化分析工具XDebug 大型網(wǎng)站調(diào)試工具
大型網(wǎng)站調(diào)試工具之一(php性能優(yōu)化分析工具XDebug) ,開(kāi)發(fā)php的朋友可以參考下。有助于解決php代碼的多種問(wèn)題。2011-05-05
php字符串操作常見(jiàn)問(wèn)題小結(jié)
這篇文章主要介紹了php字符串操作常見(jiàn)問(wèn)題,結(jié)合實(shí)例形式分析了php針對(duì)json的操作及字符串轉(zhuǎn)換問(wèn)題,需要的朋友可以參考下2016-10-10
《Head First 設(shè)計(jì)模式》代碼之PHP版(面向?qū)ο髮W(xué)習(xí))
《Head First 設(shè)計(jì)模式》是本不錯(cuò)的講解設(shè)計(jì)模式的書(shū),不像F4寫的那么枯燥,應(yīng)該算是比較容易理解的好書(shū)。2010-06-06
PHP PDO fetch 模式各種參數(shù)的輸出結(jié)果一覽
這篇文章主要介紹了PHP PDO fetch 模式各種參數(shù)的輸出結(jié)果一覽,本文目的是方便根據(jù)實(shí)際需求選擇不同的參數(shù),從而不用一個(gè)一個(gè)測(cè)試過(guò)去,需要的朋友可以參考下2015-01-01
PHP訪問(wèn)Google Search API的方法
這篇文章主要介紹了PHP訪問(wèn)Google Search API的方法,實(shí)例分析了php針對(duì)谷歌API訪問(wèn)的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
PHP實(shí)現(xiàn)的比較完善的購(gòu)物車類
這篇文章主要介紹了PHP實(shí)現(xiàn)的比較完善的購(gòu)物車類,包含了針對(duì)商品常見(jiàn)的增加、刪除與修改等功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-12-12
Php中用PDO查詢Mysql來(lái)避免SQL注入風(fēng)險(xiǎn)的方法
本篇文章介紹了,Php中用PDO查詢Mysql來(lái)避免SQL注入風(fēng)險(xiǎn)的方法。需要的朋友參考下2013-04-04

