网站首页 > 基础教程 正文
先抛出问题,有时候我们接收到的参数是多维数组,我们需要将他们转成普通的数组,比如:
$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
猜你喜欢
- 2024-10-12 六种流行语言(C、C++、Python、JavaScript、PHP、Java)对比
- 2024-10-12 「讨论」php与Python之间有何区别?Python和php之间的简单比较
- 2024-10-12 PHP获取目录中的全部内容 php获取目录列表
- 2024-10-12 重蔚自留地php学习第三十天——php数组
- 2024-10-12 脚把脚教你消息队列,典型的应用场景到底有哪些?
- 2024-10-12 php-生成器(yield) php生成html
- 2024-10-12 PHP——数组根据某一键值合并 php 数组 合并
- 2024-10-12 php 一步步实现mvc架构——view篇
- 2024-10-12 PHP函数shuffle()取数组若干个随机元素的方法及实例分析
- 2024-10-12 WordPress 主循环和全局变量 wordpress主题
- 05-03【Docker】部署 Elasticsearch(docker运行elasticsearch)
- 05-03若依框架改造,阿里docker部署(若依框架开发教程)
- 05-03软件测试/测试开发丨必知必会的Docker 命令
- 05-03如何从主机复制文件到Docker容器(如何从主机复制文件到docker容器里)
- 05-03Windows搭建Agent开发平台-WSL2+Dify本地部署及开发指南
- 05-03docker安装prometheus和grafana(docker如何安装)
- 05-03从Docker容器复制文件到主机的方法
- 05-03在Debian Docker环境一键部署Dify:手把手教你搭建本地AI应用平台
- 最近发表
-
- 【Docker】部署 Elasticsearch(docker运行elasticsearch)
- 若依框架改造,阿里docker部署(若依框架开发教程)
- 软件测试/测试开发丨必知必会的Docker 命令
- 如何从主机复制文件到Docker容器(如何从主机复制文件到docker容器里)
- Windows搭建Agent开发平台-WSL2+Dify本地部署及开发指南
- docker安装prometheus和grafana(docker如何安装)
- 从Docker容器复制文件到主机的方法
- 在Debian Docker环境一键部署Dify:手把手教你搭建本地AI应用平台
- 【Docker】部署Jira&Confluence
- 精辟!阿里大牛泪解:docker镜像制作——构建企业镜像LAMP+BBS
- 标签列表
-
- 菜鸟教程 (58)
- jsp (69)
- pythonlist (60)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- pythonif (68)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)