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删除HTMl标签的实现代码
Jun 30 PHP
php中\r \r\n \t的区别示例介绍
Feb 08 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
php读取文件内容到数组的方法
Mar 16 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
四个常见html网页乱码问题及解决办法
Sep 08 PHP
PHP实现可自定义样式的分页类
Mar 29 PHP
PHP简单获取及判断提交来源的方法
Apr 22 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
Aug 10 PHP
PHP基于堆栈实现的高级计算器功能示例
Sep 15 PHP
Yii框架日志记录Logging操作示例
Jul 12 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 15 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
PHP面向对象编程快速入门
2006/12/14 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
javascript复制对象使用说明
2011/06/28 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
angularJs中跳转到指定的锚点实例($anchorScroll)
2018/08/31 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
Vue+Element-UI实现上传图片并压缩
2019/11/26 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
python3.3实现乘法表示例
2014/02/07 Python
Python实现爬虫爬取NBA数据功能示例
2018/05/28 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
Python3爬虫中Selenium的用法详解
2020/07/10 Python
python3处理word文档实例分析
2020/12/01 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
AmazeUI 手机版页面的顶部导航条Header与侧边导航栏offCanvas的示例代码
2020/08/19 HTML / CSS
PUMA官方商城:世界领先的运动品牌之一
2016/11/16 全球购物
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
Probikekit欧盟:在线公路自行车专家
2019/07/12 全球购物
欧克利英国官网:Oakley英国
2019/08/24 全球购物
jQuery treeview树形结构应用
2021/03/24 jQuery
自我评价优秀范文分享
2013/11/30 职场文书
求职自我评价怎么写
2015/03/09 职场文书
浅析Django接口版本控制
2021/06/26 Python
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers