PHP基于数组的分页函数(array_slice())–附带分页加强版

  •   
  • 3822
  • PHP
  • 1
  • super_dodo
  • 2013/10/30

关于数组的分页函数,用数组进行分页的好处是可以方便的进行联合多表查询,只需要将查询的结果放在数组中就可以了以下是数组分页的函数,函数page_array用于数组的分页,函数show_array用于分页函数的操作及显示,需要配合使用.两个函数通过全局变量$countpage发生联系,此变量用于跟踪总页码数.

/**
 * 数组分页函数  核心函数  array_slice
 * 用此函数之前要先将数据库里面的所有数据按一定的顺序查询出来存入数组中
 * $pageSize   每页多少条数据
 * $page   当前第几页
 * $array   查询出来的所有数组
 * order 0 - 不变     1- 反序
 */ 

//使用PHP的方法对数组进行分页(每页显示条目数,第几页,分页的数据,是否翻转)
public function php_slice_page($pageSize,$page,$array,$order){
	global $countPage;                     	 //定全局变量
	$page = (empty($page)) ? '1' : $page;      //判断当前页面是否为空 如果为空就表示为第一页面 
	$start = ($page-1)*$pageSize;           //计算每次分页的开始位置
	if($order == 1){
		$array = array_reverse($array);			//翻转数据
	}   
	$total = count($array);  					//总的记录数
	$countPage = ceil($total/$pageSize);    	 //计算总页面数
	$pageData = array();
	$pageData = array_slice($array,$start,$pageSize,'1');		// 最后一个值为true 保留原来键
	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;
}

原文地址:http://blog.csdn.net/yboker/article/details/8260384

加强版的(两种样式:推荐):http://blog.chinaunix.net/uid-28671255-id-3526209.html

更加加强版(一种样式,带跳转到第几页):http://www.jq-school.com/Show.aspx?id=226

若现在就觉得失望无力,未来那么远你该怎么扛。 ——致自己