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 相关文章推荐
用PHP4访问Oracle815
Oct 09 PHP
用ODBC的分页显示
Oct 09 PHP
将OICQ数据转成MYSQL数据
Oct 09 PHP
PHP 模拟$_PUT实现代码
Mar 15 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
hadoop中一些常用的命令介绍
Jun 19 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
Jun 12 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
php文件上传类完整实例
May 14 PHP
PHP单例模式简单用法示例
Jun 23 PHP
Laravel框架使用Seeder实现自动填充数据功能
Jun 13 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基于session实现数据库交互的类实例
2015/08/03 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
Laravel使用swoole实现websocket主动消息推送的方法介绍
2019/10/20 PHP
如何在centos8自定义目录安装php7.3
2019/11/28 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
jQuery Validate插件ajax方式验证输入值的实例
2017/12/21 jQuery
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
NodeJS读取分析Nginx错误日志的方法
2019/05/14 NodeJs
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
2018/12/24 Python
python操作文件的参数整理
2019/06/11 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
python爬虫破解字体加密案例详解
2021/03/02 Python
当x.equals(y)等于true时,x.hashCode()与y.hashCode()可以不相等,这句话对不对
2015/05/02 面试题
机械专业毕业生自荐信
2013/11/02 职场文书
大专毕业生自我评价分享
2013/11/10 职场文书
销售演讲稿范文
2014/01/08 职场文书
会议邀请函范文
2014/01/09 职场文书
踏青活动策划方案
2014/08/19 职场文书
大学生自荐材料范文
2014/12/30 职场文书
2015年工程部工作总结
2015/04/30 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
Spring Security中用JWT退出登录时遇到的坑
2021/10/16 Java/Android
php修改word的实例方法
2021/11/17 PHP
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
Elasticsearch 数据类型及管理
2022/04/19 Python
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis