先抛出问题,有时候我们接收到的参数是多维数组,我们需要将他们转成普通的数组,比如:
?
1
2
3
4
|
$arr = [
[1, 2, [3, 4]],
[5, 6, [7, 8]],
];
|
我们需要的结果是元素1变成1,2,3,4,元素2变成5,6,7,8,这时候,我们就可以用foreach配合list来实现,而且非常简单:
?
1
2
3
|
foreach ( $arr as list( $a , $b , list( $c , $d ))) {
echo $a , ',' , $b , ',' , $c , ',' , $d , PHP_EOL;
}
|
是不是非常的简单。但是要注意哦,list拆解键值对形式的Hash数组时要指定键名,并且只有在7.1以后的版本才可以使用哦
?
1
2
3
4
5
6
7
8
9
10
11
12
|
$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点,千万要注意。
上述代码中第二个写法更简单直观,由此发现我们还可以这样来拆解数组。并且指定键值了就不用在乎他们的顺序了:
?
1
2
|
[ "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处理多维数组内容请搜索快网idc以前的文章或继续浏览下面的相关文章希望大家以后多多支持快网idc!
原文链接:https://www.cnblogs.com/zyblog-coder/p/14338136.html
相关文章
猜你喜欢
- ASP.NET自助建站系统的域名绑定与解析教程 2025-06-10
- 个人服务器网站搭建:如何选择合适的服务器提供商? 2025-06-10
- ASP.NET自助建站系统中如何实现多语言支持? 2025-06-10
- 64M VPS建站:如何选择最适合的网站建设平台? 2025-06-10
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-06-04 81
-
2025-05-25 89
-
2025-05-29 97
-
2025-05-25 81
-
2025-05-29 103
热门评论