PHP 7.1 引入了一种有用的新语法来将数组解构为变量,并迭代多维数组。
它涉及在单个 foreach 表达式中巧妙地使用方括号 [ 和 ]。
如果嵌套级别已知,我们可以使用单个 foreach 循环来完成——不再需要使用嵌套循环结构来迭代多维数组。
如果我们事先不知道嵌套的级别,我们仍然可以使用旧的策略。
例如使用递归函数遍历数组。
语法在以下示例中得到了最好的演示:
foreach ($some_array as [ 'name' => $name, 'email' => $email, ]) { //foreach expressions: echo $name . ':'. $email . PHP_EOL; }
数组解构的括号语法
如果我们需要,这里包含一些功能齐全的示例。
下面的示例在二维数组上使用新的括号语法:
$some_array[] = [ 'name' => 'JacobSeated', 'email' => 'seat@example.com' ]; $some_array[] = [ 'name' => 'Rasmus', 'email' => 'rasmus@example.com' ]; foreach ($some_array as [ 'name' => $name, 'email' => $email, ]) { //foreach expressions: echo $name . ':'. $email . PHP_EOL; }
最后,如果我们有一个 3 级数组,我们只需使用与为数组赋值时相同的语法。
以下内容可用于 3 维数组:
$some_array[] = [ 'name' => 'Sophia', 'email' => 'sophia@example.com', 'more' => [ 'title' => 'I like cake', 'content' => 'Lots of sugar' ] ]; $some_array[] = [ 'name' => 'Andrea', 'email' => 'andrea@example.com', 'more' => [ 'title' => 'anything good and happy', 'content' => 'I am content with using PHP' ] ]; foreach ($some_array as [ 'name' => $name, 'email' => $email, 'more' => [ 'content' => $content, 'title' => $title ]]) { //Foreach expressions: echo $name . ':'. $content . PHP_EOL; }
日期:2020-06-02 22:17:34 来源:oir作者:oir