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下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
php XMLWriter类的简单示例代码(RSS输出)
Sep 30 PHP
深入PHP curl参数的详解
Jun 17 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
Aug 20 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
详解WordPress开发中wp_title()函数的用法
Jan 07 PHP
PHP中key和current,next的联合运用实例分析
Mar 29 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 PHP
ThinkPHP中调用PHPExcel的实现代码
Apr 08 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 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
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
PHP机器学习库php-ml的简单测试和使用方法
2017/07/14 PHP
PHP实现模拟http请求的方法分析
2017/12/20 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
PHP关于foreach复制知识点总结
2019/01/28 PHP
php扩展开发入门demo示例
2019/09/23 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
使用vue.js写一个tab选项卡效果
2017/03/25 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
2017/05/03 Javascript
基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)
2017/11/02 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
2019/05/15 Javascript
JS设置自定义快捷键并实现图片上下左右移动
2019/10/17 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
v-slot和slot、slot-scope之间相互替换实例
2020/09/04 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
Python中给List添加元素的4种方法分享
2014/11/28 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
Python生成器以及应用实例解析
2018/02/08 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
keras读取h5文件load_weights、load代码操作
2020/06/12 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
python基于selenium爬取斗鱼弹幕
2021/02/20 Python
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
电子商务自荐书范文
2014/01/04 职场文书
大家检讨书5000字
2014/02/03 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
销售开票员岗位职责
2015/04/15 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书