用 list() 给嵌套的数组解包

(PHP 5 >= 5.5.0, PHP 7)

PHP 5.5 增添了遍历一个数组的数组的功能并且把嵌套的数组解包到循环变量中,只需将list() 作为值提供。

例如:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b)) {
    // $a contains the first element of the nested array,
    // and $b contains the second element.
    echo "A: $a; B: $b\n";
}
?>

以上例程会输出:

A: 1; B: 2
A: 3; B: 4

list() 中的单元可以少于嵌套数组的,此时多出来的数组单元将被忽略:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a)) {
    // Note that there is no $b here.
    echo "$a\n";
}
?>

以上例程会输出:

1
3

如果 list() 中列出的单元多于嵌套数组则会发出一条消息级别的错误信息:

<?php
$array = [
    [1, 2],
    [3, 4],
];

foreach ($array as list($a, $b, $c)) {
    echo "A: $a; B: $b; C: $c\n";
}
?>

以上例程会输出:

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C: Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C: 

foreach()与list()的综合应用,用list给嵌套的数组解包相关推荐

  1. 综合模拟试题计算机指南,2018年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合历年真题及模拟试题详解...

    2018年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合历年真题及模拟试题详解本站小编 辅仁网/2017-06-21 下载地址:http://free.100xuexi.co ...

  2. php数组foreach循环添加键值对_循环 - PHP二维数组根据键值对获取一组数组 (不使用foreach)...

    问 题 $user = array( 0 => array( 'id' => 1, 'name' => '张三', 'email' => 'zhangsan@sina.com' ...

  3. 安卓玩机搞机技巧综合资源-----修改rom 制作rom 解包rom的一些问题解析【二十一】

    接上篇 安卓玩机搞机技巧综合资源------如何提取手机分区 小米机型代码分享等等 [一] 安卓玩机搞机技巧综合资源------开机英文提示解决dm-verity corruption your de ...

  4. 2.4.3 Mybatis 高级查询, 复杂映射, 返回主键, 动态SQL if, set, foreach, 核心配置文件深入,plugins标签, 多表查询, 嵌套查询

    目录 Mybatis 复杂映射&配置文件深入 一 Mybatis高级查询 1.1 ResutlMap属性 1.2 多条件查询(三种) 1.3 模糊查询 二 Mybatis映射文件深入 2.1 ...

  5. SIP与RTP综合应用5-RTP解包过程

    RTP接收部分比较简单(不用考虑jitterbuffer等),先从这里入手. 其实主要就3步: 1 创建一个udp,监听一个端口,比如5200. 2 收到RTP包,送到解包程序,继续收第 二个. 3 ...

  6. ***PHP 遍历数组的方法foreach

    foreach  http://php.net/manual/zh/control-structures.foreach.php (PHP 4, PHP 5) foreach 语法结构提供了遍历数组的 ...

  7. 流程控制 - PHP手册笔记

    流程控制 - PHP手册笔记 原文:流程控制 - PHP手册笔记 脚本由语句构成,语句靠流程控制实现功能,这一节主要介绍了几个关键字的使用. elseif elseif和else if的行为完全一样, ...

  8. 浅谈PHP语音里的流程控制及实现方法

    脚本由语句构成,语句靠流程控制实现功能,这一节主要介绍了几个关键字的使用. elseif elseif和else if的行为完全一样,如果用冒号来定义if/elseif条件,那就不能用两个单词的els ...

  9. PHP数组foreach遍历输出例子详解

    通常我们对于数据遍历会使用到foreach来操作当然也有使用到while list each函数来实现了,但在方便面上来看foreach更简洁好用性能也非常的不错,下面本人整理了一款在开发应用中for ...

  10. 现代php 阅读笔记,PHP 手册阅读笔记 - 语言参考篇

    最近计划把 PHP手册,认真的先过一遍.记录一些以前不知道,不明确的知识. 语言参考 > 类型 [新认知]强制转换类型用 settype( mixed $var, string $type ). ...

最新文章

  1. SSL 数字证书助力电子商务,让您网络购物更安心
  2. oracle 11.2.0.5下载,oracle 11.2.0.4和10.2.0.5下载地址
  3. 尼康d850相机参数测试软件,尼康 D850最全参数信息曝光 快来围观
  4. 一个用理性设计的搞笑游戏
  5. 题目:16版.雇员的工作职责(一)
  6. NOI大纲 CSP初赛篇·知识大纲 CSP-入门级-NOI大纲
  7. Linux 命令(32)—— grep 命令
  8. c语言程序设计视屏下载,C语言程序设计零基础入门视频教程下载
  9. AB Micro800编程环境CCW安装
  10. 宏基因组/微生物组杂志简介及2020最新影响因子
  11. 网页另存word分页
  12. Inside-OutsideNet
  13. MIT6.824 2022 Fault-tolerant Key/Value Service
  14. html+css制作静态小米商城页面(含css手动轮播图)
  15. dup java_关于JVM字节码中dup指令的问题?
  16. Dubbo中暴露服务的过程解析
  17. Python调用Rasa API服务进行连续对话
  18. CF1324D Pair of Topics 题解
  19. 【数模整理3】数据分析那些事儿——回归分析
  20. 中兴echat_中兴通讯助力公共安全行业数字化转型

热门文章

  1. 购物网站讨论5:会员功能的实现
  2. 【JavaScript 封装库】BETA 2.0 测试版发布!
  3. ATL接口映射宏详解
  4. 历史上的第一位程序员(一)
  5. 【Android开发】Android 颜色透明度换算
  6. java JVM常见的四大异常及处理方案
  7. 利用H5开发微信公众号
  8. 串口发送字符串到串口软件
  9. Spark-Mllib(二)基本统计
  10. 实验一 DOS命令解释程序的编写