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
