Blogger Information
Blog 30
fans 1
comment 0
visits 23352
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
在PHP中灵活使用foreach+list处理多维数组的方法
P粉896289085
Original
521 people have browsed it

这篇文章主要介绍了在PHP中灵活使用foreach+list处理多维数组的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

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

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

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

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

  1. $arr = [
  2. ["a" => 1, "b" => 2],
  3. ["a" => 3, "b" => 4],
  4. ];
  5. foreach ($arr as list("a" => $a, "b" => $b)) {
  6. echo $a, ',', $b, PHP_EOL;
  7. }
  8. foreach ($arr as ["a" => $a, "b" => $b]) {
  9. echo $a, ',', $b, PHP_EOL;
  10. }

注意:如果没有写键名,会输出空而不会报错,这是个BUG点,千万要注意。
上述代码中第二个写法更简单直观,由此发现我们还可以这样来拆解数组。并且指定键值了就不用在乎他们的顺序了:

  1. ["b" => $b, "a" => $a] = $arr[0];
  2. 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处理多维数组的文章就介绍到这了。

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post