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 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
php Http_Template_IT类库进行模板替换
Mar 19 PHP
php str_pad() 将字符串填充成指定长度的字符串
Feb 23 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
Dec 21 PHP
php四种基础算法代码实例
Oct 29 PHP
php curl_init函数用法
Jan 31 PHP
PHP批量删除、清除UTF-8文件BOM头的代码实例
Apr 14 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
php 自定义错误日志实例详解
Nov 12 PHP
PHP Class SoapClient not found解决方法
Jan 20 PHP
如何通过PHP实现Des加密算法代码实例
May 09 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 mssql 日期出现中文字符的解决方法
2009/03/10 PHP
在PHP中操作Excel实例代码
2010/04/29 PHP
php断点续传之如何分割合并文件
2014/03/22 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
php实现当前页面点击下载文件的实例代码
2016/11/16 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
thinkPHP框架实现的短信接口验证码功能示例
2018/06/20 PHP
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
浅谈node.js中async异步编程
2015/10/22 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python编程实现希尔排序
2017/04/13 Python
带你了解python装饰器
2017/06/15 Python
Python2.7下安装Scrapy框架步骤教程
2017/12/22 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
2018/08/31 Python
python 模拟创建seafile 目录操作示例
2019/09/26 Python
css3中的calc函数浅析
2018/07/10 HTML / CSS
html5的新玩法——语音搜索
2013/01/03 HTML / CSS
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
亲戚结婚的请假条
2014/02/11 职场文书
家庭教育的心得体会
2014/09/01 职场文书
太行山上观后感
2015/06/05 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
Go timer如何调度
2021/06/09 Golang
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技