先抛出问题,有时候我们接收到的参数是多维数组,我们需要将他们转成普通的数组,比如:

$arr = [  [1, 2, [3, 4]],  [5, 6, [7, 8]],];

我们需要的结果是元素1变成1,2,3,4,元素2变成5,6,7,8,这时候,我们就可以用foreach配合list来实现,而且非常简单:

foreach ($arr as list($a, $b, list($c, $d))) {  echo $a, ',', $b, ',', $c, ',', $d, PHP_EOL;}

是不是非常的简单。但是要注意哦,list拆解键值对形式的Hash数组时要指定键名,并且只有在7.1以后的版本才可以使用哦

$arr = [  ["a" => 1, "b" => 2],  ["a" => 3, "b" => 4],];foreach ($arr as list("a" => $a, "b" => $b)) {  echo $a, ',', $b, PHP_EOL;}foreach ($arr as ["a" => $a, "b" => $b]) {  echo $a, ',', $b, PHP_EOL;}

注意:如果没有写键名,会输出空而不会报错,这是个BUG点,千万要注意。

上述代码中第二个写法更简单直观,由此发现我们还可以这样来拆解数组。并且指定键值了就不用在乎他们的顺序了:

["b" => $b, "a" => $a] = $arr[0];echo $a, ',', $b, PHP_EOL;

原来list()还有这样的语法糖,果然还是要不断的学习,一直使用却从未深入了解过的方法竟然能有这么多的用处。不多说了,接着研究手册中其他好玩的东西去咯!

测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201911/source/%E5%9C%A8PHP%E4%B8%AD%E7%81%B5%E6%B4%BB%E4%BD%BF%E7%94%A8foreach%2Blist%E5%A4%84%E7%90%86%E5%A4%9A%E7%BB%B4%E6%95%B0%E7%BB%84.php

到此这篇关于在PHP中灵活使用foreach+list处理多维数组的文章就介绍到这了,更多相关PHP使用foreach+list处理多维数组内容请搜索乐虎体育以前的文章或继续浏览下面的相关文章希望大家以后多多支持乐虎体育!

在PHP中灵活使用foreach+list处理多维数组的方法的更多相关文章

  1. PHP中强制类型转换的示例详解

    前言学过静态语言开发的朋友对类型转换不会陌生,比如Java、C#、C++等。静态语言的好处就是变量强制必须指定类型,......

  2. PHP设计模式之原型模式示例详解

    前言原型模式其实更形象的来说应该叫克隆模式。它主要的行为是对对象进行克隆,但是又把被克隆的对象称之为最初的原型,于是......

  3. docker中实现安装php拓展步骤讲解

    一:php核心拓展包安装在docker中安装的php有一些核心的拓展包,他们一般放置在/usr/src/php/ex......

  4. php中unable to fork报错简单解决方法

    今天小编遇到一个问题,当调用了system方法,并且执行了shell脚本,开始的时候,一切都非常正常,但是当程序运行......

  5. php 繁体简体互转类

    utf8_gb2312 = "么万与丑专业丛东丝丢两严丧个丬丰临为丽举么义乌乐乔习乡书买乱争于亏云亘亚产亩......

  6. php中yum命令用法详解

    在php中关于yum命令还是比较多的,主要是因为在配置linux环境,linux中安装、卸载等各种操作中,因此,掌握......

  7. PHP中PDO关闭连接的方法问题

    在之前我们手写 mysql 的连接操作时,一般都会使用 mysql_close() 来进行关闭数据库连接的操作。不过......

  8. php结合GD库实现中文验证码的简单方法

    前言上一次写了一个常见的验证码,现在玩一下中文的验证码,顺便升级一下写的代码流程基本差不多先看GD库开启了没生成中文......

  9. php 实现使用curl模拟百度蜘蛛进行采集

    //实现使用curl模拟百度蜘蛛进行采集class Curlcontent{protected function _......

  10. PHP 非常实用下载远程图片

    /*** 下载远程图片* @param string $url 图片的绝对url* @param string $f......

随机推荐

  1. 用python-webdriver实现自动填表的示例代码

    在日常工作中常常需要重复填写某些表单,如果人工完成,费时费力,而且网络延迟令人十分崩溃。如果能够用程序实现自动填表,......

  2. Android实现微信摇一摇功能

    本文实例为大家分享了Android实现微信摇一摇功能的具体代码,供大家参考,具体内容如下1、初始化界面设置摇一摇界面......

  3. Java压缩集合的三种方法

    前言这个问题算是开发当中偶尔会遇到的一个小问题,比如如何将两个集合压缩成为一个逻辑集合。如果你不理解,我们可以看一个......

  4. 如何在Vue项目中添加接口监听遮罩

    一、业务背景使用遮罩层来屏蔽用户的非正常操作,是前端经常使用的方式。但是在一些项目中,并没有对遮罩层进行统一管理,这......

  5. python用分数表示矩阵的方法实例

    前言在机器学习中,我们会经常和矩阵打交道。在矩阵的运算中,python默认的输出是浮点数,但是如果我们想要矩阵的元素......

  6. Vue实现摇一摇功能(兼容ios13.3以上)

    最近做了个摇一摇类似的功能,使用的是shake.js,但在ios13.3之前的版本中可以触发摇一摇,之后的版本需要兼......

  7. C++ 入门篇

    C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 ......

  8. CSS不用背景图片实现优惠券样式反圆角,凹圆角,反向半圆角,并且背景渐变

    日常开发过程中,特别是商城相关应用开发过程中,时常会遇到花里胡哨的设计图,比如优惠券样式,上图:实现思路如下:1.先......

  9. input标签checkbox选中触发事件的方法

    1.方法一function checkboxOnclick(checkbox){ if ( checkbox.che......

  10. 关于Vue v-model你需要知道的一切

    v-model是Vue的一个指令,它提供了input和form数据之间或两个组件之间的双向数据绑定。这在Vue开发中......