如何在PHP中打印一个二维数组

3

我想问一下,当我在PHP中像这样输出一个特定单元格时,为什么会出现以下情况:

echo "$array[0][0]";

我得到的结果是:数组[0],当我像这样回显它时:
echo $array[0][0];

我理解了这个值。 只是好奇,不明白为什么。 :/


3
应该这样写:echo "{$array[0][0]}"; - Charaf JRA
谢谢你的回答。 我也尝试了一个一维数组,使用 echo "$array[0]"; 也可以正常工作。 不太明白为什么。 - user1082307
2个回答

2

简单的字符串插值语法允许解释一级数组:

"foo $array[0] bar"

这个功能可以在字符串字面值中评估变量的值。它是一个便利功能,可以避免您输入大量的连接运算符('foo ' . $array[0] . ' bar')。

还有一种复杂的字符串插值语法,允许嵌套表达式:

"foo {$array[0][0]} bar"

请参见http://php.net/manual/zh/language.types.string.php#language.types.string.parsing
另一方面:
echo $array[0][0];

这样直接访问数组值是按照原本的意图进行访问,而不受字符串内插规则的特定限制。

1
如果你使用",你可以在字符串中放置变量,但是php不能猜测你是否指的是$array[0]和字符串[0],还是实际变量$array[0][0]。它猜测了第一个。
如果你想在字符串中这样做,请添加{来显示哪个是变量。
echo "{$array[0][0]}"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接