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 相关文章推荐
nginx+php-fpm配置文件的组织结构介绍
Nov 07 PHP
php数组声明、遍历、数组全局变量使用小结
Jun 05 PHP
ThinkPHP之foreach标签使用概述
Jun 30 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
php中mysql操作buffer用法详解
Mar 19 PHP
学习php设计模式 php实现享元模式(flyweight)
Dec 07 PHP
浅谈php和js中json的编码和解码
Oct 24 PHP
Fleaphp常见函数功能与用法示例
Nov 15 PHP
PHP实现的同步推荐操作API接口案例分析
Nov 30 PHP
php微信开发之关注事件
Jun 14 PHP
PHP高并发和大流量解决方案整理
Mar 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 Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
2018/11/10 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
jQuery中prepend()方法用法实例
2014/12/25 Javascript
jquery mobile界面数据刷新的实现方法
2016/05/28 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
Layui table 组件的使用之初始化加载数据、数据刷新表格、传参数
2017/09/11 Javascript
JavaScript模板引擎实现原理实例详解
2018/12/14 Javascript
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
vue获取form表单的值示例
2019/10/29 Javascript
Python3.2中的字符串函数学习总结
2015/04/23 Python
Python写的一个简单监控系统
2015/06/19 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
pyqt5简介及安装方法介绍
2018/01/31 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
python实现Dijkstra静态寻路算法
2019/01/17 Python
利用python list完成最简单的DB连接池方法
2019/08/09 Python
python实现的分层随机抽样案例
2020/02/25 Python
如何利用python web框架做文件流下载的实现示例
2020/06/02 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
护理自荐信
2013/10/22 职场文书
《小池塘》教学反思
2014/02/28 职场文书
法人授权委托书
2014/04/03 职场文书
大一新生检讨书
2014/10/29 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
大学生党员自我评价
2015/03/04 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers