PHP实现对数组分页处理实例详解
代码如下 | 复制代码 |
<?php classPaginationArray{ 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 * */ functionsetArguments($arr){ if(is_array($arr)){ $this->pageArray=$arr['pageArray']; $this->pageSize=$arr['pageSize']; $this->current=$arr['current']; }else{ return; } } //返回链接 functionpage(){ $_return=array(); /*calculator*/ $this->total=ceil(Count($this->pageArray)/$this->pageSize); $this->prev=(($this->current-1)<= 0="" 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; } //链接的样式 privatefunctionlinkStyle($number=1){ $linkStyle=''; switch($number){ case1: $linkStyle="first prev next end"; break; case2: $linkStyle="首页 上一页 下一页 尾页"; 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.' } echo $r["links"]; */ ?> |
代码如下 | 复制代码 |
functionread_csv($cvs) { $shuang= false; $str=file_get_contents($cvs); for($i=0;$i<strlen($str);$i++) { if($str{$i}=='"') { if($shuang) { if($str{$i+1}=='"') { $str{$i} ='*'; $str{$i+1} ='*'; }else{ $shuang= false; } }else{ $shuang= true; } } if($str{$i}==',') { if($shuang) { }else{ $str{$i} ='|'; } } if($str{$i}=="\n") { if($shuang) { $str{$i} ='^'; }else{ } } } $str=str_replace(array('"','*'),array('','"'),$str); $a1=explode("\n",$str); $array=array(); foreach($a1as$k=>$value) { if($value) { $value=str_replace("^","\n",$value); $array[$k] =explode("|",$value); } } return$array; } |
条件,数据库里分类是按id,fid(父ID)实现多级分类的!
使用方法:
代码如下 | 复制代码 |
$sql="XXXXXXXXXX"; //sql语句 $res=$db->Select($sql); //执行sql $list=array(); treeList(treeGet($res),$list); /生成树 print_r($res); //打印出来看看! |
使用结果:
┣推荐新闻啊
┃┣国际新闻
┃┣dfffffg
┃┣ttttttt
┃┃┗yyyyy
代码如下:
代码如下 | 复制代码 |
/** * 选择SQL涵数 * * @access public * @param Array $field 字段信息,支持涵数 * @param Array $table 数据库表 * @param Array $where 条件 * @return SQL SQL语句 */ functiontreeGet($data) { $tmptree=null; $tree=$data; returntreeAddNodeToTree($tmptree,treegetbyuid($tree,0,@$field),$tree); } /** *插入SQL涵数 * * @access public * @param Array $fieldResult 字段信息,支持涵数 * @param Array $table 数据库表 * @return SQL SQL语句 */ functiontreeAddNodeToTree($Node,$miniTree,&$source) { if(is_array($miniTree)) { foreach($miniTreeas$k=>$v) { if(!count($miniTree[$k]['child']=treeAddNodeToTree($miniTree[$k],treegetbyuid($source,@$v['id']),$source))) { unset($miniTree[$k]['child']); $miniTree[$k]['leaf']=true;//设置叶结点 } } return$Node['child']=$miniTree; } } functiontreegetbyuid(&$stree,$uid) { $dtree=array(); if(is_array($stree)){ foreach($streeas$k=>$v) { if($v['fid']==$uid) { $mytmp=array(); $mytmp=$v; unset($stree[$k]); array_push($dtree,$mytmp); $mytmp=null; } } } return$dtree; } /** *更新SQL涵数 * * @access public * @param Array $fieldResult 字段信息,支持涵数 * @param Array $table 数据库表 * @param Array $where 条件 * @return SQL SQL语句 */ functiontreeMakeDeep($deep) { $returnValue=""; for(;$deep;$deep--) { $returnValue.="┃"; } return$returnValue."┣"; } functiontreeList($treeData,&$List) { static$deep=0; if(is_array($treeData)) { foreach($treeDataas$k=>$v) { $v['deepValue']=treeMakeDeep($deep); $v['deep']=$deep; $t=$v; unset($t['child']); array_push($List,$t); if($v['child']) { ++$deep; $optionsNode.=treeList($v['child'],$List); $deep--; } } if($lastV=array_pop($List)) { $lastV['deepValue']=str_replace('┣','┗',$lastV['deepValue']); array_push($List,$lastV); } } } functiontreeSelect($tree,$id,$options="child") { switch(strtolower($options)) { case"child": $tmpTree=array(); $deep=-1; foreach($treeas$k=>$v) { if($id==$v['id']) { array_push($tmpTree,$v); $deep=$v['deep']; }elseif($deep!=-1) { if($v['deep']<=$deep) { break; }else { array_push($tmpTree,$v); } } } break; case"remove": default: $tmpTree=array(); $deep=-1; foreach($treeas$k=>$v) { if($id==$v['id']) { $deep=$v['deep']; continue; }elseif($deep!=-1) { if($v['deep']<=$deep) { array_push($tmpTree,$v); $deep=-1; } continue; } array_push($tmpTree,$v); } } return$tmpTree; } |
代码如下 | 复制代码 |
classbevin{ public$public='public' private$private='private' protected$protected='protected' //final $final = 'final' static$static='static' function__construct(){ $this->protected='change private' } publicfunctionsetValue($a){ self::$static=$a; } publicfunctiongetValue(){ echo$this->private; } function__destruct(){ echo'asdfsadf' } } classpaixu { // 基本排序 publicfunctiont_sortArray($array) { if(is_array($array) &&count($array)>1) { for($i=0;$i<count($array);$i++) { for($j=($i+1);$j<count($array);$j++) { $temp=$array[$i]; if($array[$j]<$array[$i]) { $array[$i] =$array[$j]; $array[$j] =$temp; } } } return$array; }else{ return$array; } } // 冒泡排序 publicfunctionc_sortArray($array) { if(!is_array($array) ||count($array)<=1){return$array; } $status= false; foreach($arrayas$key=>$v) { if($key>0) { if($array[$key-1]>$array[$key]) { $array[$key] =$array[$key-1]; $array[$key-1] =$v; $status= true; } } } if($status) { return$this->c_sortArray($array); }else{ return$array; } } // 快速排序 publicfunctionv_sortArray($array) { if(!is_array($array) ||count($array)<=1){return$array; } if(count($array)>2) { $m=$array[floor(count($array)/2)+1]; }else{ if($array[0]>$array[1]) { $temp=$array[0]; $array[0] =$array[1]; $array[1] =$temp; } return$array; } $leftarray=array(); $rightarray=array(); foreach($arrayas$key=>$v) { if($v>$m) { $rightarray[] =$v; } if($v<$m) { $leftarray[] =$v; } if($v==$m) { $mid[] =$v; } } $nleftarray=$this->v_sortArray($leftarray); $nrightarray=$this->v_sortArray($rightarray); returnarray_merge($nleftarray,$mid,$nrightarray); } // 直接插入排序 publicfunctioni_sortArray($array) { if(!is_array($array) ||count($array)<=1){return$array; } $newarray=array($array[0]); $temp= 0; foreach($arrayas$k=>$v) { if($k>0) { if($v>=$newarray[count($newarray)-1]) { $newarray[] =$v; }else{ foreach($newarrayas$nk=>$nv) { if($v<$nv) { $temparray=array(); foreach($newarrayas$ck=>$cv) { if($ck<$nk) { $temparray[$ck] =$cv; }elseif($ck==$nk) { $temparray[$ck] =$v; $temparray[($ck+1)] =$cv; }else{ $temparray[($ck+1)] =$cv; } } $newarray=$temparray; break; } } } } } return$newarray; } } $bevin=newpaixu; $array=array(5,4,5,4,4,5,5,5,5,5); $v=$bevin->t_sortArray($array); print_r($v); $v=$bevin->c_sortArray($array); print_r($v); $v=$bevin->v_sortArray($array); print_r($v); $v=$bevin->i_sortArray($array); print_r($v); |
运行结果:
代码如下 | 复制代码 |
Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 5 [4] => 5 [5] => 5 [6] => 5 [7] => 5 [8] => 5 [9] => 5 ) Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 5 [4] => 5 [5] => 5 [6] => 5 [7] => 5 [8] => 5 [9] => 5 ) Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 5 [4] => 5 [5] => 5 [6] => 5 [7] => 5 [8] => 5 [9] => 5 ) Array ( [0] => 4 [1] => 4 [2] => 4 [3] => 5 [4] => 5 [5] => 5 [6] => 5 [7] => 5 [8] => 5 [9] => 5 ) |
相关文章
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 本文章提供在量的数据中级操作实例有如对键名比较计算数组的差集 计算差集 给指定数组中插入一个元素 反转数组 交集赋值新的数组实例。 //定义回调函数 funct...2016-11-25
- 这篇文章主要介绍了C#二维数组基本用法,以实例形式分析了C#中二维数组的定义、初始化、遍历及打印等用法,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- Array数组在C#中同样是最基本的数据结构,下面为大家C#数组的常用操作方法小结,皆为细小的代码段,欢迎收看收藏...2020-06-25
- 这篇文章主要介绍了Windows批量搜索并复制/剪切文件的批处理程序实例,需要的朋友可以参考下...2020-06-30
- 下面一段代码给大家介绍php curl模拟post请求的示例代码,具体代码如下: <?php$uri = "http://www.cnblogs.com/test.php";//这里换成自己的服务器的地址// 参数数组$data = array ( 'name' => 'tanteng'// 'passwor...2015-11-24
BAT批处理判断服务是否正常运行的方法(批处理命令综合应用)
批处理就是对某对象进行批量的处理,通常被认为是一种简化的脚本语言,它应用于DOS和Windows系统中。这篇文章主要介绍了BAT批处理判断服务是否正常运行(批处理命令综合应用),需要的朋友可以参考下...2020-06-30- 下面小编就为大家带来一篇C# 拷贝数组的几种方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。 遇到这个...2014-06-07
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- file_get_contents的超时处理话说,从PHP5开始,file_get_content已经支持context了(手册上写着:5.0.0 Added the context support. ),也就是说,从5.0开始,file_get_contents其实也可以POST数据。今天说的这篇是讲超时的,确实在...2013-10-04
- 这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了C#读取文件所有行到数组的方法,涉及C#针对文件及数组的相关操作技巧,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了C#多线程中的异常处理操作,涉及C#多线程及异常的捕获、处理等相关操作技巧,需要的朋友可以参考下...2020-06-25
- 如何将下面的二维数组转为一维数组。复制代码 代码如下:$msg = array( array( 'id'=>'45', 'name'=>'jack' ), array( 'id'=>'34', 'name'=>'mary' ), array( 'id...2014-05-31
- 在php中为我们提供了一个函数var_export 他可以直接将php代码入到一个文件中哦。 代码如下 复制代码 var_export($times,true);后面不加tru...2016-11-25
- 本文为代码分享,也是在工作中看到一些“大牛”的代码,做做分享。 具体是这样的,如下一个二维数组,是从库中读取出来的。 代码清单: 复制代码 代码如下: $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'ema...2014-06-07
- 这篇文章主要介绍了postgresql 中的时间处理小技巧(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
- 这篇文章主要介绍了Python同时处理多个异常的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-29