PHP中array_slice函数用法实例详解


Posted in PHP onNovember 25, 2014

本文详细介绍了array_slice函数的详细用法以及一些常用的array_slice实例程序,分享给大家供大家参考。具体分析如下:

array_slice() 函数在数组中根据条件取出一段值,并返回.

注释:如果数组有字符串键,所返回的数组将保留键名,参见例子 4.

语法:array_slice(array,offset,length,preserve)

函数在数组中根据条件取出一段值,并返回.

参数:

array  必需,规定输入的数组.

offset  必需,数值,规定取出元素的开始位置,如果是正数,则从前往后开始取,如果是负值,从后向前取offset 绝对值.

length  可选,数值,规定被返回数组的长度,如果是负数,则从后向前,选取该值绝对值数目的元素,如果未设置该值,则返回所有元素.

preserve 可选,可能的值:true ? 保留键 false ? 默认 ? 重置键,当为0的时候,将里面的值赋值给一个新的变量,最后返回这个变量。

代码如下:

<?php 

    $arr = array(0,1,2,3,4); 

    var_dump(array_slice($arr,0,2)); 

     

    echo "<br/>"; 

    $arr2 = array('a'=>array('a','a','a'),'b'=>array('b','b','b')); 

    var_dump(array_slice($arr2,0,1)); 

?>

返回的结果如下:
array(2) { [0]=> int(0) [1]=> int(1) } 
array(1) { ["a"]=> array(3) { [0]=> string(1) "a" [1]=> string(1) "a" [2]=> string(1) "a" } }

array_slice函数实现的分页方法非常好用,分享如下:

<?php 

//假定一个结果集二维数组: 

   $arr = array(array('name'=> 'name1','sex' => 'sex1','job' => 'job1'), 

              array('name'=> 'name2','sex' => 'sex2','job' => 'job2'), 

              array('name'=> 'name3','sex' => 'sex3','job' => 'job3'), 

              array('name'=> 'name4','sex' => 'sex4','job' => 'job4'), 

              array('name'=> 'name5','sex' => 'sex5','job' => 'job5'), 

              array('name'=> 'name6','sex' => 'sex6','job' => 'job6'), 

              array('name'=> 'name7','sex' => 'sex7','job' => 'job7'), 

              array('name'=> 'name8','sex' => 'sex8','job' => 'job8'), 

              array('name'=> 'name9','sex' => 'sex9','job' => 'job9'), 

              array('name'=> 'name10','sex' => 'sex10','job' => 'job10'), 

              array('name'=> 'name11','sex' => 'sex11','job' => 'job11'), 

              array('name'=> 'name12','sex' => 'sex12','job' => 'job12'), 

     ); 

 

 //计算总记录条数 

 $num = count($arr); 

 //规定每页显示的条数 

 $perpage = 3; 

 //计算页数 

 $pages = ceil($num/$perpage); 

 //echo $num,$perpage,$pagecount;exit; 

 if(is_numeric($_REQUEST['page'])) 

 { 

  if($_REQUEST['page']<1){ 

   $page = 1; 

  }elseif($_REQUEST['page']>$pages) 

  { 

   $page = $pages; 

  }else{ 

  $page = $_REQUEST['page']; 

   } 

 }else{ 

  $page = 1; 

 } 

 $start = ($page-1)*$perpage; 

 $newpage = array_slice($arr,$start,$perpage,true); 

 //print_r($newpage);exit; 

?> 

<table cellpadding="0" cellspacing="0" border="1"> 

 <tr> 

  <td>name</td> 

  <td>sex</td> 

  <td>job</td> 

 </tr> 

<?php 

 foreach($newpage as $k => $v) 

{ 

?> 

 <tr> 

  <td><?php echo  $v['name']; ?></td> 

  <td><?php echo  $v['sex']; ?></td> 

  <td><?php echo  $v['job']; ?></td> 

 </tr> 

<?php 

} 

?> 

</table> 

<?php 

if($page>1){ 

 echo "<a href='?page=1'>首页</a>"; 

 echo "<a href='?page=".($page-1)."'>上一页</a>"; 

}

if($page<$pages) 

{ 

 echo "<a href='?page=".($page+1)."'>下一页</a>"; 

 echo "<a href='?page=".$pages."'>末页</a>"; 

} 

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php+mysql实现无限级分类 | 树型显示分类关系
Nov 19 PHP
php面向对象全攻略 (九)访问类型
Sep 30 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
phpExcel导出大量数据出现内存溢出错误的解决方法
Feb 28 PHP
php class中self,parent,this的区别以及实例介绍
Apr 24 PHP
PHPMailer邮件发送的实现代码
May 04 PHP
php实现水仙花数的4个示例分享
Apr 08 PHP
php中error与exception的区别及应用
Jul 28 PHP
如何打开php的gd2库
Feb 09 PHP
PHP defined()函数的使用图文详解
Jul 20 PHP
使用Laravel中的查询构造器实现增删改查功能
Sep 03 PHP
ThinkPHP框架设计及扩展详解
Nov 25 #PHP
Yii入门教程之目录结构、入口文件及路由设置
Nov 25 #PHP
Yii入门教程之Yii安装及hello world
Nov 25 #PHP
php 伪造ip以及url来路信息方法汇总
Nov 25 #PHP
浅析php适配器模式(Adapter)
Nov 25 #PHP
浅析php原型模式
Nov 25 #PHP
浅析php创建者模式
Nov 25 #PHP
You might like
PHP常用代码
2006/11/23 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
PHP使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php使用session二维数组实例
2014/11/06 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
2016/04/30 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
IE6下拉框图层问题探讨及解决
2014/01/03 Javascript
分享一款基于jQuery的视频播放插件
2014/10/09 Javascript
基于javascript实现简单计算器功能
2016/01/03 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
React简单介绍
2017/05/24 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
微信小程序自定义tabBar组件开发详解
2020/09/24 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
Python中内建函数的简单用法说明
2016/05/05 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
让代码变得更易维护的7个Python库
2018/10/09 Python
Python二进制文件读取并转换为浮点数详解
2019/06/25 Python
Python3+selenium配置常见报错解决方案
2020/08/28 Python
法国房车租赁网站:Yescapa
2019/08/26 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类?
2012/05/30 面试题
精神文明建设先进工作者事迹材料
2014/05/02 职场文书
委托书格式
2014/08/01 职场文书
2015年班干部工作总结
2015/04/29 职场文书