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 相关文章推荐
基于文本的搜索
Oct 09 PHP
php URL编码解码函数代码
Mar 10 PHP
PHP 数组入门教程小结
May 20 PHP
PHP新手入门学习方法
May 08 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
php数组合并与拆分实例分析
Jun 12 PHP
php实现转换ubb代码的方法
Jun 18 PHP
PHP常用的排序和查找算法
Aug 06 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
学习Vue组件实例
2018/04/28 Javascript
JS中比较两个Object数组是否相等方法实例
2019/11/11 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
Vue中import from的来源及省略后缀与加载文件夹问题
2020/02/09 Javascript
python3使用scrapy生成csv文件代码示例
2017/12/28 Python
python判断一个集合是否为另一个集合的子集方法
2018/05/04 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
python conda操作方法
2019/09/11 Python
TensorFlow-gpu和opencv安装详细教程
2020/06/30 Python
CSS3实现简易版的刮刮乐效果
2016/09/27 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
html5实现canvas阴影效果示例
2014/05/07 HTML / CSS
俄罗斯小米家用电器、电子产品和智能家居商店:Poood.ru
2020/04/03 全球购物
Nike俄罗斯官方网站:Nike RU
2021/03/05 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
植树节口号
2014/06/21 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
机关作风建设整改方案
2014/10/27 职场文书
2014年调度员工作总结
2014/11/19 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript