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,则不会改变。

PHP数组foreach循环如何实现逆序访问?的更多相关文章

  1. JavaScript数组forEach循环

    JavaScript数组forEach循环 今天写JavaScript代码把forEach循环数组忘记写法了,在此记录一下以防止未来忘记. let a = [1, 2, 3]; a.forEach(f ...

  2. php 大数组 foreach 循环嵌套的性能优化

    前提:最近在做后台的时候,页面加载太慢,故第一时间想到的自然是优化SQL, 优化后sql查询速度从 2秒变成了零点几秒, 以为就这麽完事了,然并卵,加载竟然花费30秒! 这麽慢,然后在代码中分块记录它 ...

  3. java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。

    public class Test3 { public static void main(String[] args) { int[] grade = {87,88,89,98,78}; int m; ...

  4. 计算概论(A)/基础编程练习2(8题)/6:数组逆序重放

    #include<stdio.h> int main() { // 输入n个整数 ; scanf("%d", &n); // 循环读入元素 while(scan ...

  5. Openjudge计算概论——数组逆序重放【递归练习】

    /*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...

  6. php的array数组 -------方法foreach循环时候,利用数组里值的引用地址(& )从而改变数组里的值

    /* * 把每个数组值后面都加个SQL然后返回数组 * foreach循环时候,直接用引用(&)的方式就能改变之前的数组 */public function array_foreach(){ ...

  7. OpenJudge计算概论-数组逆序重放

    /*=============================================================== 数组逆序重放 总时间限制: 1000ms 内存限制: 65536kB ...

  8. Java 数组元素逆序Reverse的三种方式

    Java 数组元素逆序Reverse的三种方式   本文链接:https://blog.csdn.net/xHibiki/article/details/82930521 题目 代码实现 说明 int ...

  9. Java实现蓝桥杯VIP算法训练 数组逆序排列

    试题 算法训练 数组逆序排列 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,读入一组整数(不超过20个),并把它们保存在一个整型数组中.当用户输入0时,表示输入结束. ...

随机推荐

  1. BZOJ4372: 烁烁的游戏(动态点分治)

    Description 背景:烁烁很喜欢爬树,这吓坏了树上的皮皮鼠.题意:给定一颗n个节点的树,边权均为1,初始树上没有皮皮鼠.烁烁他每次会跳到一个节点u,把周围与他距离不超过d的节点各吸引出w只皮皮 ...

  2. 王小川分享AI

    王小川的分享:Link

  3. ORA-01078错误举例:SID的大写和小写错误

    案例重演: dbca建库.SID:metro    --手工建库时实例名小写的metro ...... [oracle@org54 ~]$ export ORACLE_SID=METRO        ...

  4. 感谢党,软考过了。系统集成项目管理project师

    人品爆发了,刚用干巴巴的日语做完2小时的设计说明,回到家一查,人品爆发了.软考竟然过了. 绝对是评卷老师给人品啊!真想请他吃顿饭. 系统集成项目管理project师  64 53 幸运飞过! 今天真是 ...

  5. Matrix学习——基础知识

    以前在线性代数中学习了矩阵,对矩阵的基本运算有一些了解,前段时间在使用GDI+的时候再次学习如何使用矩阵来变化图像,看了之后在这里总结说明. 首先大家看看下面这个3 x 3的矩阵,这个矩阵被分割成4部 ...

  6. win10系统64位安装git后右键运行git bash here生成一个mintty.exe.stackdump文件后闪退解决方案

    在其他win10电脑上复制了一个null.sys文件,替换C:\Windows\System32\drivers\null.sys,搞定.

  7. 【习题 6-6 UVA - 12166 】Equilibrium Mobile

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举一个秤砣的重量不变. 某一个秤砣的重量不变之后. 所有秤砣的重量就固定了. 因为它的兄弟节点的重量要和它一样. 则父亲节点的重量 ...

  8. 不在JPA 的 persistence.xml 文件中配置Entity class的解决办法

    在Spring 集成 Hibernate 的JPA方式中,需要在persistence配置文件中定义每一个实体类,这样非常地不方便,2种方法可以解决此问题: 这2种方式都可以实现不用在persiste ...

  9. ArcGIS 10.5 新功能

    ArcGIS 10.5正式发布,打造智能的Web GIS平台 2017年新年来临之际,ArcGIS 10.5正式发布. 历经几个版本,ArcGIS10.5已经革新为一个智能的以Web为中心的地理平台, ...

  10. ajax的get请求与编码

    window.onload = function(){ document.getElementById('username').onblur = function(){ var name = docu ...