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 相关文章推荐
Apache2 httpd.conf 中文版
Nov 17 PHP
附件名前加网站名
Mar 23 PHP
PHP执行批量mysql语句的解决方法
May 02 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
May 15 PHP
php旋转图片90度的方法
Nov 07 PHP
2014过年倒计时示例
Jan 31 PHP
php轻量级的性能分析工具xhprof的安装使用
Aug 12 PHP
微信公众号开发客服接口实例代码
Oct 21 PHP
php版微信小店调用api示例代码
Nov 12 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
php实现在线考试系统【附源码】
Sep 18 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
php 分页函数multi() discuz
2009/06/21 PHP
PHPMyadmin 配置文件详解(配置)
2009/12/03 PHP
浅析php header 跳转
2013/06/17 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
2013/08/31 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
PHP判断远程图片是否存在的几种方法
2014/05/04 PHP
fckeditor上传文件按日期存放及重命名方法
2015/05/22 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
nodejs导出excel的方法
2015/06/30 NodeJs
贴近用户体验的Jquery日期、时间选择插件
2015/08/19 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
2016/03/06 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
Python学习笔记(二)基础语法
2014/06/06 Python
Python标准库defaultdict模块使用示例
2015/04/28 Python
python爬虫项目设置一个中断重连的程序的实现
2019/07/26 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
英国最大的高品质珠宝和手表专家:Goldsmiths
2017/03/11 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
PHP中如何创建和修改数组
2012/05/02 面试题
保护环境倡议书100字
2014/05/19 职场文书
医学专业大学生求职信
2014/07/12 职场文书
党风廉正建设责任书
2015/01/29 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
详解Java实践之建造者模式
2021/06/18 Java/Android
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
使用logback实现按自己的需求打印日志到自定义的文件里
2021/08/30 Java/Android