PHP数组foreach循环如何实现逆序访问?

一、总结

1、array_reverse($array) :foreach(array_reverse($array) as $key=>$value) 。

二、PHP数组foreach循环如何实现逆序访问?

简单的一个php数组函数,之前没这个需要一直都不知道有这么一个函数,擦汗...

php数组逆序输出代码
  1. foreach(array_reverse($array) as $key=>$value){
  2. echo $value.' ';
  3. }

array_reverse

(PHP 4, PHP 5)

array_reverse — 返回一个单元顺序相反的数组

说明

array array_reverse ( array $array [, bool $preserve_keys ] )

array_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组,如果 preserve_keys 为 TRUE 则保留原来的键名。

Example #1 array_reverse() 例子

<?php
$input  = array("php", 4.0, array("green", "red"));
$result = array_reverse($input);
$result_keyed = array_reverse($input,true);
?>

这将使 $result 和 $result_keyed 具有相同的单元,但是注意键名的区别。$result 和 $result_keyed 的打印输出显示分别为:

Array
(
[0] => Array
(
[0] => green
[1] => red
) [1] => 4
[2] => php
)
Array
(
[2] => Array
(
[0] => green
[1] => red
) [1] => 4
[0] => php
)

Note: 第二个参数是 PHP 4.0.3 中新加的。

总结:

如果 array_reverse($arr) 不行,就用 array_reverse($arr,true)

三、php参考手册:array_reverse

array_reverse

(PHP 4, PHP 5, PHP 7)

array_reverse — 返回单元顺序相反的数组

说明

array array_reverse ( array $array [, bool $preserve_keys = false ] )

array_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组。

参数

array

输入的数组。

preserve_keys

如果设置为 TRUE 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。

返回值

返回反转后的数组。

范例

Example #1 array_reverse() 例子

<?php
$input  = array("php", 4.0, array("green", "red"));
$reversed = array_reverse($input);
$preserved = array_reverse($input, true);

print_r($input);
print_r($reversed);
print_r($preserved);
?>

以上例程会输出:

Array
(
[0] => php
[1] => 4
[2] => Array
(
[0] => green
[1] => red
) )
Array
(
[0] => Array
(
[0] => green
[1] => red
) [1] => 4
[2] => php
)
Array
(
[2] => Array
(
[0] => green
[1] => red
) [1] => 4
[0] => php
)

四、测试题-简答题

1、array_reverse()数组会影响到二维数组的第二维么?

解答:不会,只影响第一维。

2、array_reverse($input, true);中的true的作用是什么?

解答:true对应的参数是preserve_keys,如果设置为true,TRUE 会保留数字的键。 非数字的键则不受这个设置的影响,总是会被保留。

也就是说数组逆序了,但是数字键和值的对应关系并没有改变。

3、array_reverse($input);会改变键和值的对应关系么?

解答:如果有数字key,则会按照reverse后的value顺序重新指定,如果全是非数字的key,则不会改变。

最新文章

  1. 多线程迭代之——LINQ to TaskQuery
  2. java 线程安全 synchronized
  3. jQuery判断元素是否在可视区
  4. 移动端H5页面的设计稿尺寸大小规范-转载自http://www.chinaz.com/design/2015/1103/465670.shtml
  5. Java基础复习之二:运算符,键盘录入,流程控制语句,if语句,三元运算
  6. js基础第七天
  7. 用它解决大问题啦,STRACE应用
  8. C语言(按键获取与函数)
  9. linux下挂载iso镜像文件(转)
  10. 分针网—每日分享:HTML解析原理
  11. 模拟EF CodeFist 实现自己的ORM
  12. FileSaver.js 介绍
  13. Linux下解压后缀名为".tar.xz"的文件
  14. 第十一节 JS事件基础
  15. Linux系统的命令别名功能(转)
  16. 【独家】硅谷创业公司在中国常跌的五个坑|禾赛科技CEO李一帆柏林亚太周主题演讲
  17. shell命令记录
  18. PTA 7-9 旅游规划(SPFA)
  19. 第一个 smarty 程序
  20. Jira 添加自定义字段

热门文章

  1. Microsoft SQL Server Version List(SQL Server 版本)
  2. php操作zip压缩文件
  3. 9. ZooKeeper之搭建单机模式。
  4. Spark SQL概念学习系列之DataFrame与RDD的区别
  5. Android检测网络状态,判断当前网络是否可用
  6. Maven在dos窗口中的命令
  7. EXT gridPanel 添加图片
  8. 页面事件(Init,Load,PreRender)执行顺序
  9. Day2:PYC
  10. GO语言学习(二)Windows 平台下 LiteIDE 的安装和使用