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将向Java靠拢
Oct 09 PHP
第五节 克隆 [5]
Oct 09 PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
PHP实现全角字符转为半角方法汇总
Jul 09 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
May 17 PHP
Laravel中间件实现原理详解
Oct 09 PHP
PHP实现简单的模板引擎功能示例
Sep 02 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
Sep 29 PHP
PHP配置ZendOpcache插件加速
Feb 14 PHP
Laravel实现批量更新多条数据
Apr 06 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+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
PHP+mysql实现从数据库获取下拉树功能示例
2017/01/06 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
JavaScript入门教程(8) Location地址对象
2009/01/31 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
基于jquery实现人物头像跟随鼠标转动
2015/08/23 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
js+canvas绘制五角星的方法
2016/01/28 Javascript
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
2020/09/22 Javascript
Python二分查找详解
2015/09/13 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
Python基于requests库爬取网站信息
2020/03/02 Python
让Django的BooleanField支持字符串形式的输入方式
2020/05/20 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
利用HTML5+css3+jquery+weui实现仿微信聊天界面功能
2018/01/08 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
美国专业消费电子及摄影器材网站:B&H Photo Video
2019/12/18 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
如何手工释放资源
2013/12/15 面试题
车辆安全检查制度
2014/01/12 职场文书
函授大学生自我鉴定
2014/02/05 职场文书
创业融资计划书
2014/04/25 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
JAVA SpringMVC实现自定义拦截器
2022/03/16 Python
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server