先抛出问题,有时候咱们接收到的参数是多维数组,咱们须要将他们转成普通的数组,好比:php
$arr = [ [1, 2, [3, 4]], [5, 6, [7, 8]], ];
咱们须要的结果是元素1变成1,2,3,4,元素2变成5,6,7,8,这时候,咱们就能够用foreach配合list来实现,并且很是简单:git
foreach ($arr as list($a, $b, list($c, $d))) { echo $a, ',', $b, ',', $c, ',', $d, PHP_EOL; }
是否是很是的简单。可是要注意哦,list拆解键值对形式的Hash数组时要指定键名,而且只有在7.1之后的版本才可使用哦github
$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()还有这样的语法糖,果真仍是要不断的学习,一直使用却从未深刻了解过的方法居然能有这么多的用处。很少说了,接着研究手册中其余好玩的东西去咯!学习
===============code
关注公众号:【硬核项目经理】获取最新文章blog
添加微信/QQ好友:【xiaoyuezigonggong/149844827】免费得PHP、项目管理学习资料项目管理
知乎、公众号、抖音、头条搜索【硬核项目经理】
B站ID:482780532