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 相关文章推荐
SSI指令
Nov 25 PHP
php下使用SMTP发邮件的代码
Jan 10 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
解析php利用正则表达式解决采集内容排版的问题
Jun 20 PHP
CI框架给视图添加动态数据
Dec 01 PHP
php结合web uploader插件实现分片上传文件
May 10 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
PHP7常量数组用法分析
Sep 26 PHP
php 解析xml 的四种方法详细介绍
Oct 26 PHP
PHP多进程编程之僵尸进程问题的理解
Oct 15 PHP
php中html_entity_decode实现HTML实体转义
Jun 13 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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的Yii框架的常用日志操作总结
2015/12/08 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
在JQuery dialog里的服务器控件 事件失效问题
2010/12/08 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
jquery选择器简述
2015/08/31 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
[48:35]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 TNC vs Optic
2018/04/03 DOTA
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
2018/07/18 Python
使用PyQt4 设置TextEdit背景的方法
2019/06/14 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
Python decimal模块使用方法详解
2020/06/08 Python
如何卸载python插件
2020/07/08 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
广州盈通面试题
2015/12/05 面试题
求职推荐信
2013/10/28 职场文书
军训心得体会
2013/12/31 职场文书
村官学习十八大感想
2014/01/15 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python