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 相关文章推荐
ADODB结合SMARTY使用~超级强
Nov 25 PHP
用PHP将数据导入到Foxmail的实现代码
Sep 05 PHP
php自定义函数call_user_func和call_user_func_array详解
Jul 14 PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 PHP
thinkPHP基于ajax实现的菜单与分页示例
Jul 12 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
laravel通过创建自定义artisan make命令来新建类文件详解
Aug 17 PHP
php实现支持中文的文件下载功能示例
Aug 30 PHP
thinkPHP框架实现生成条形码的方法示例
Jun 06 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
PHP程序员简单的开展服务治理架构操作详解(二)
May 14 PHP
php开发最强大的IDE编辑的phpstorm 2020.2配置Xdebug调试的详细教程
Aug 17 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
德生9700DX电路分析
2021/03/02 无线电
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
2011/03/09 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
js资料prototype 属性
2007/03/13 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
JS实现往下不断流动网页背景的方法
2015/02/27 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
jQuery 操作input中radio的技巧
2016/07/18 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
js实现前端分页页码管理
2017/01/06 Javascript
jquery实现异步加载图片(懒加载图片一种方式)
2017/04/24 jQuery
react-router实现按需加载
2017/05/09 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
微信小程序实现文件、图片上传功能
2020/08/18 Javascript
[02:10]DOTA2 TI10勇士令状玩法及不朽Ⅰ展示:焕新世界,如你所期
2020/05/29 DOTA
Python实现的简单发送邮件脚本分享
2014/11/07 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
美国购买肉、鸭、家禽、鹅肝和熟食网站:D’Artagnan
2018/11/13 全球购物
Lentiamo荷兰:在线订购隐形眼镜、隐形眼镜液和太阳镜
2019/10/25 全球购物
化验室技术员岗位职责
2013/12/24 职场文书
会计电算化学生个人的自我评价
2014/02/08 职场文书
服务标兵事迹材料
2014/05/04 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
2019年朋友圈经典励志语录50条
2019/07/05 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP
Python基础数据类型tuple元组的概念与用法
2021/08/02 Python
选购到合适的激光打印机
2022/04/21 数码科技