在 PHP 中,术语 数组解构 是指将数组元素提取到单个变量中的机制。它也可以称为 数组解包。PHP 的 list() 结构用于描述给定的数组,在一个语句中将其项目分配给变量列表。
因此,val1 分配给 $var 1,val2 分配给 $var 2,依此类推。尽管因为括号的原因,你可能会认为 list() 是一个函数,但事实并非如此,因为它没有返回值。PHP 将字符串视为数组,但是不能用 list() 解包。此外,list() 的括号不能为空。
除了 list(),你还可以使用方括号 [] 作为解构数组的快捷方式。
例子
请看下面的例子 -
将产生以下输出 -
物理:50 化学:56 数学:70
物理:50 化学:56 数学:70
物理:50 化学:56 数学:70
解构关联数组
在 PHP 7.1.0 之前,list() 只适用于数值索引从 0 开始的数值数组。PHP 7.1 中,数组解构也适用于关联数组。
让我们尝试解构(或解包)以下关联数组,一个具有非数字索引的数组。
要解构此数组,list() 语句将每个数组键与一个自变量相关联。
相反,你也可以使用 [] 替代解构表示法。
尝试并执行以下 PHP 脚本 -
跳过数组元素
对于索引数组,您可以跳过它的某些元素,仅将其他元素分配给所需的变量
对于关联数组,由于索引不是从 0 开始的增量,因此在分配时不必遵循元素的顺序。
解构嵌套数组
你也可以将数组解构的概念扩展到嵌套数组。在下面的示例中,嵌套在其中的子数组是一个索引数组。
即使嵌套数组也是关联数组,解构也能很好地工作。