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缓存技术介绍
Nov 25 PHP
ajax实现无刷新分页(php)
Jul 18 PHP
五款常用mysql slow log分析工具的比较分析
May 22 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
Jun 28 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
Apr 02 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
php好代码风格的阶段性总结
Jun 25 PHP
基于php实现的验证码小程序
Dec 13 PHP
Ajax+PHP实现的删除数据功能示例
Feb 12 PHP
yii2.0框架实现上传excel文件后导入到数据库的方法示例
Apr 13 PHP
windows系统php环境安装swoole具体步骤
Mar 04 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
与数据库连接
2006/10/09 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
PHP生成word文档的三种实现方式
2016/11/14 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
javascript错误的认识不用关心内存管理
2012/12/15 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
第二章之Bootstrap 页面排版样式
2016/04/25 Javascript
第一次接触神奇的Bootstrap表单
2016/07/27 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
利用nodeJs anywhere搭建本地服务器环境的方法
2018/05/12 NodeJs
react-router4按需加载(踩坑填坑)
2019/01/06 Javascript
vue.js 2.*项目环境搭建、运行、打包发布的详细步骤
2019/05/01 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
[54:17]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第二场 1月10日
2021/03/11 DOTA
[46:49]完美世界DOTA2联赛PWL S3 access vs Rebirth 第二场 12.19
2020/12/24 DOTA
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
python中提高pip install速度
2020/02/14 Python
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
室内设计实习自我鉴定
2013/09/25 职场文书
环境工程大学生个人的自我评价
2013/10/08 职场文书
初中校园广播稿
2014/02/02 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
小学生综合素质评语
2014/04/23 职场文书
优秀语文教师事迹
2014/05/18 职场文书
拓展策划方案
2014/06/03 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
给老婆的保证书
2015/01/16 职场文书
家长会开场白和结束语
2015/05/29 职场文书
Go语言安装并操作redis的go-redis库
2022/04/14 Golang