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加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
PHP 各种排序算法实现代码
Aug 20 PHP
php下关于Cannot use a scalar value as an array的解决办法
Aug 08 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 PHP
Apache下禁止php文件被直接访问的解决方案
Apr 25 PHP
为百度UE编辑器上传图片添加水印功能
Apr 16 PHP
PHP正则验证Email的方法
Jun 15 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
php版微信数据统计接口用法示例
Oct 12 PHP
PHP获取当前日期及本周一是几月几号的方法
Mar 28 PHP
Discuz不使用插件实现简单的打赏功能
Mar 21 PHP
PHP常量define和const的区别详解
May 18 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小偷的核心程序
2007/04/09 PHP
如何使用php绘制在图片上的正余弦曲线
2013/06/08 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
php的dl函数用法实例
2014/11/06 PHP
php发送短信验证码完成注册功能
2015/11/24 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
My Desktop :) 桌面式代码
2008/12/29 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
安装使用Mongoose配合Node.js操作MongoDB的基础教程
2016/03/01 Javascript
js实现上一页下一页的效果【附代码】
2016/03/10 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
微信小程序 picker-view 组件详解及简单实例
2017/01/10 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
在vue中使用axios实现post方式获取二进制流下载文件(实例代码)
2019/12/16 Javascript
JavaScript中的惰性载入函数及优势
2020/02/18 Javascript
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
Python内置random模块生成随机数的方法
2019/05/31 Python
Python判断字符串是否xx开始或结尾的示例
2019/08/08 Python
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
2015年消防工作总结
2015/04/24 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python