PHP基于数组的分页函数,核心函数array_slice

  1. <?php
  2. /**
  3. * 数组分页函数 核心函数 array_slice
  4. * 用此函数之前要先将数据库里面的所有数据按一定的顺序查询出来存入数组中
  5. * $count 每页多少条数据
  6. * $page 当前第几页
  7. * $array 查询出来的所有数组
  8. * order 0 - 不变 1- 反序
  9. */
  10. function page_array($count,$page,$array,$order){
  11. global $countpage; #定全局变量
  12. $page=(empty($page))?'1':$page; #判断当前页面是否为空 如果为空就表示为第一页面
  13. $start=($page-1)*$count; #计算每次分页的开始位置
  14. if($order==1){
  15. $array=array_reverse($array);
  16. }
  17. $totals=count($array);
  18. $countpage=ceil($totals/$count); #计算总页面数
  19. $pagedata=array();
  20. $pagedata=array_slice($array,$start,$count);
  21. return $pagedata; #返回查询数据
  22. }
  23. /**
  24. * 分页及显示函数
  25. * $countpage 全局变量,照写
  26. * $url 当前url
  27. */
  28. function show_array($countpage,$url){
  29. $page=empty($_GET['page'])?1:$_GET['page'];
  30. if($page > 1){
  31. $uppage=$page-1;
  32. }else{
  33. $uppage=1;
  34. }
  35. if($page < $countpage){
  36. $nextpage=$page+1;
  37. }else{
  38. $nextpage=$countpage;
  39. }
  40. $str='<div >';
  41. $str.="<span>共 {$countpage} 页 / 第 {$page} 页</span>";
  42. $str.="<span><a href='$url?page=1'> 首页 </a></span>";
  43. $str.="<span><a href='$url?page={$uppage}'> 上一页 </a></span>";
  44. $str.="<span><a href='$url?page={$nextpage}'>下一页 </a></span>";
  45. $str.="<span><a href='$url?page={$countpage}'>尾页 </a></span>";
  46. $str.='</div>';
  47. return $str;
  48. }
  49. ?>