1. 程式人生 > >PHP基於陣列的分頁函式(核心函式array_slice())

PHP基於陣列的分頁函式(核心函式array_slice())

關於陣列的分頁函式,用陣列進行分頁的好處是可以方便的進行聯合多表查詢,只需要將查詢的結果放在陣列中就可以了以下是陣列分頁的函式,函式page_array用於陣列的分頁,函式show_array用於分頁函式的操作及顯示,需要配合使用.兩個函式通過全域性變數$countpage發生聯絡,此變數用於跟蹤總頁碼數.

<?php
/**
 * 陣列分頁函式  核心函式  array_slice
 * 用此函式之前要先將資料庫裡面的所有資料按一定的順序查詢出來存入陣列中
 * $count   每頁多少條資料
 * $page   當前第幾頁
 * $array   查詢出來的所有陣列
 * order 0 - 不變     1- 反序
 */ 

function page_array($count,$page,$array,$order){
   	global $countpage; #定全域性變數
    $page=(empty($page))?'1':$page; #判斷當前頁面是否為空 如果為空就表示為第一頁面 
       $start=($page-1)*$count; #計算每次分頁的開始位置
    if($order==1){
      $array=array_reverse($array);
    }   
    $totals=count($array);  
    $countpage=ceil($totals/$count); #計算總頁面數
   	$pagedata=array();
	$pagedata=array_slice($array,$start,$count);
   	return $pagedata;  #返回查詢資料
}
/**
 * 分頁及顯示函式
 * $countpage 全域性變數,照寫
 * $url 當前url
 */
function show_array($countpage,$url){
     $page=empty($_GET['page'])?1:$_GET['page'];
	 if($page > 1){
	   	$uppage=$page-1;

	 }else{
	 	$uppage=1;
	 }

	 if($page < $countpage){
	   	$nextpage=$page+1;

	 }else{
	    	$nextpage=$countpage;
	 }
	   
        $str='<div style="border:1px; width:300px; height:30px; color:#9999CC">';
	$str.="<span>共  {$countpage}  頁 / 第 {$page} 頁</span>";
	$str.="<span><a href='$url?page=1'>   首頁  </a></span>";
	$str.="<span><a href='$url?page={$uppage}'> 上一頁  </a></span>";
	$str.="<span><a href='$url?page={$nextpage}'>下一頁  </a></span>";
	$str.="<span><a href='$url?page={$countpage}'>尾頁  </a></span>";
	$str.='</div>';
	return $str;
}
?>