PHP实现对数组分页处理实例详解


Posted in PHP onFebruary 07, 2017

本文实例讲述了PHP实现对数组分页处理方法。分享给大家供大家参考,具体如下:

最近用到了用数组数据分页,这里整理了一下,具体代码如下:

<?php
class PaginationArray{
 public $pageArray=array(); //数组
 public $pageSize=10; //每页显示记录数
 public $current= 1; //当前页
 private $total=0; //总页数
 private $prev=0; //上一页
 private $next=0; //下一页
 public $argumetsOther='';//设置参数
 function __construct($array=array(),$pageSize=10,$current=1){
 $this->pageArray=$array;
 $this->pageSize=$pageSize;
 $this->current=$current; 
 }
 /*通过数组进行初始化
 * 
 * 数组为关联数组,参数索引为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}\">首页</a> <a href=\"?page={$this->prev}&{$this->argumetsOther}\">上一页</a> <a href=\"?page={$this->next}&{$this->argumetsOther}\">下一页</a> <a href=\"?page={$this->total}&{$this->argumetsOther}\">尾页</a>";
  break;
 }
 return $linkStyle;
 }
}
//调用的实例
/*
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"];
*/
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
Nov 18 PHP
编写漂亮的代码 - 将后台程序与前端程序分开
Apr 23 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
ThinkPHP中处理表单中的注意事项
Nov 22 PHP
WordPress中is_singular()函数简介
Feb 05 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
Feb 14 PHP
解读PHP中上传文件的处理问题
May 29 PHP
PHP面向对象自动加载机制原理与用法分析
Oct 14 PHP
关于PHP内置的字符串处理函数详解
Feb 04 PHP
Laravel框架搜索分页功能示例
Feb 01 PHP
详解PHP变量传值赋值和引用赋值变量销毁
Mar 23 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
php实现的读取CSV文件函数示例
Feb 07 #PHP
php实现的mysqldb读写分离操作类示例
Feb 07 #PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 #PHP
PHP实现多级分类生成树的方法示例
Feb 07 #PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 #PHP
php实现图片按比例截取的方法
Feb 06 #PHP
php实现的中文分词类完整实例
Feb 06 #PHP
You might like
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
jQuery源码分析之Event事件分析
2010/06/07 Javascript
关于JS字符串函数String.replace()
2013/04/07 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
高性能js数组去重(12种方法,史上最全)
2019/12/21 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
Python实现文件信息进行合并实例代码
2018/01/17 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
解决Python下imread,imwrite不支持中文的问题
2018/12/05 Python
基于Tensorflow高阶读写教程
2020/02/10 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
中国海淘族值得信赖的海淘返利网站:55海淘
2017/01/16 全球购物
Hoka One One法国官网:美国专业跑鞋品牌
2018/12/29 全球购物
联想C++笔试题
2012/06/13 面试题
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
平民服装店创业计划书
2014/01/17 职场文书
80后婚前协议书范本
2014/10/24 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
2015年女生节活动总结
2015/02/27 职场文书
孔子观后感
2015/06/08 职场文书
地雷战观后感
2015/06/09 职场文书
拒绝盗图!教你怎么用python给图片加水印
2021/06/04 Python
Python实现简单的俄罗斯方块游戏
2021/09/25 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python