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框架的性能
Jan 10 PHP
用PHP连接MySQL代码的参数说明
Jun 07 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
php中防止伪造跨站请求的小招式
Sep 02 PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 PHP
PHP变量内存分配问题记录整理
Nov 27 PHP
最常用的8款PHP调试工具
Jul 06 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
Sep 30 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
Oct 10 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
PHP基于IMAP收取邮件的方法示例
Aug 07 PHP
PHP+mysql防止SQL注入的方法小结
Apr 27 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
PHP 写文本日志实现代码
2010/05/18 PHP
linux系统下php安装mbstring扩展的二种方法
2014/01/20 PHP
php设置页面超时时间解决方法
2015/09/22 PHP
PHP中的switch语句的用法实例详解
2015/10/21 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
28个常用JavaScript方法集锦
2015/01/14 Javascript
jQuery validate插件实现ajax验证重复的2种方法
2016/01/22 Javascript
JavaScript中Array的实用操作技巧分享
2016/09/11 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
vue自定义指令directive实例详解
2018/01/17 Javascript
js运算符的一些特殊用法
2018/07/29 Javascript
jQuery实现放大镜案例
2020/10/19 jQuery
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Python脚本实现自动发带图的微博
2016/04/27 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
python 对给定可迭代集合统计出现频率,并排序的方法
2018/10/18 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
django-filter和普通查询的例子
2019/08/12 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
python批量修改文件名的示例
2020/09/27 Python
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
往来会计岗位职责
2013/12/19 职场文书
学年末自我鉴定
2014/01/21 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
狮子林导游词
2015/02/03 职场文书
计生个人工作总结
2015/02/28 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
外出考察学习心得体会
2016/01/18 职场文书
MySQL Router的安装部署
2021/04/24 MySQL