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 相关文章推荐
谈谈新手如何学习PHP
Dec 14 PHP
在php MYSQL中插入当前时间
Apr 06 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
PHP数组遍历知识汇总(包含遍历方法、数组指针操作函数、数组遍历测速)
Jul 05 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
PHP读取PPT文件的方法
Dec 10 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
Feb 17 PHP
php 人员权限管理(RBAC)实例(推荐)
May 24 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
Oct 19 PHP
Laravel6.18.19如何优雅的切换发件账户
Jun 14 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调用数据库的存贮过程!
2006/10/09 PHP
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
如何使用php实现评委评分器
2015/07/31 PHP
功能强大的php文件上传类
2016/08/29 PHP
浅谈php中变量的数据类型判断函数
2017/03/04 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
Thinkphp5框架ajax接口实现方法分析
2019/08/28 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
2017/07/17 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
vuex中的 mapState,mapGetters,mapActions,mapMutations 的使用
2018/04/13 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
详解用JS添加和删除class类名
2019/03/25 Javascript
[01:27]DOTA2电竞之夜 今夜共饮庆功酒
2014/08/02 DOTA
使用python实现rsa算法代码
2016/02/17 Python
pandas使用get_dummies进行one-hot编码的方法
2018/07/10 Python
PyQt5响应回车事件的方法
2019/06/25 Python
Python进阶:生成器 懒人版本的迭代器详解
2019/06/29 Python
Django中自定义查询对象的具体使用
2019/10/13 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
美国东北部户外服装和设备零售商:Eastern Mountain Sports
2016/10/05 全球购物
Mytheresa英国官网:拥有160多个奢侈品品牌
2016/10/09 全球购物
员工工作表扬信范文
2014/01/13 职场文书
2014年单位植树节活动方案
2014/03/23 职场文书
检讨书1000字
2014/10/11 职场文书
失职检讨书大全
2015/01/26 职场文书
通知格式
2015/04/27 职场文书
正规欠条模板
2015/07/03 职场文书
工作会议简报
2015/07/20 职场文书
学生会2016感恩节活动小结
2016/04/01 职场文书
动画电影《龙珠超 超级英雄》延期上映
2022/03/20 日漫