在 PHP 中使用方括号语法的 Foreach

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