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类
Oct 09 PHP
PHP中遍历stdclass object的实现代码
Jun 09 PHP
定义php常量的详解
Jun 09 PHP
Yii学习总结之数据访问对象 (DAO)
Feb 22 PHP
php按字符无乱码截取中文的方法
Mar 27 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
PHP使用token防止表单重复提交的方法
Apr 07 PHP
PHP微信刮刮卡 附微信接口
Jul 22 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
Sep 09 PHP
php中简单的对称加密算法实现
Jan 05 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
laravel框架与其他框架的详细对比
Oct 23 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
解决在Laravel 中处理OPTIONS请求的问题
2019/10/11 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
js判断输入是否为数字的具体实例
2013/08/03 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
基于Jquery代码实现支持PC端手机端幻灯片代码
2015/11/17 Javascript
jQuery学习笔记——jqGrid的使用记录(实现分页、搜索功能)
2016/11/09 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
js实现用户输入的小写字母自动转大写字母的方法
2017/01/21 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
使用JS编写的随机抽取号码的小程序
2017/08/11 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
vue2.0 datepicker使用方法
2018/02/04 Javascript
fullpage.js最后一屏滚动方式
2018/02/06 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
使用react context 实现vue插槽slot功能
2019/07/18 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
[01:04]不如跳舞!DOTA2新英雄玛尔斯的欢乐日常
2019/03/11 DOTA
python正常时间和unix时间戳相互转换的方法
2015/04/23 Python
python实现类的静态变量用法实例
2015/05/08 Python
Python3实现从文件中读取指定行的方法
2015/05/22 Python
Python入门_条件控制(详解)
2017/05/16 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
python画蝴蝶曲线图的实例
2019/11/21 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
python入门之井字棋小游戏
2020/03/05 Python
pandas 像SQL一样使用WHERE IN查询条件说明
2020/06/05 Python
python开发一款翻译工具
2020/10/10 Python
实例讲解使用HTML5 Canvas绘制阴影效果的方法
2016/03/25 HTML / CSS
Servlet如何得到服务器的信息
2015/12/22 面试题
中学生获奖感言
2014/02/04 职场文书
总结表彰大会主持词
2014/03/26 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
学雷锋志愿者活动总结
2014/06/27 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL