-4

我无法通过谷歌搜索在线找到任何有用的示例或帮助,解决方案应该很简单,但结果不是我所期望的。

我有 3 个数组 - 列出几个:

$A = array(1,0,1,1,1,0,1,1,1);
$B = array(1,1,1,0,1,0,1,0,1);
$C = array(1,1,1,0,1,0,1,1,1,0,1);

然后我想创建一个元素所在的数组[0]-[2]引用上面提到的 3 个数组中的每一个。对此的声明是:

$LETTERS= array($A,$B,$C);

我正在尝试$A[x]使用以下代码获取元素:

$LETTERS[0][0];

但问题是它输出:Array[0]而不是1

如果我回$A[0]显输出将1如预期的那样。

那么我做错了什么?我认为保留字 &| 没有问题 使用大写字母作为变量,有吗?

如何访问这个二维数组中的数据?

提前感谢您的帮助。


编辑
问题是我试图用这段代码回显输出:

echo "element [0][0]: $LETTERS[0][0]";

出于某种原因,这行不通。我需要保留除实际变量之外的所有内容。有谁知道为什么会这样?

4

3 回答 3

3

您需要重新检查您的代码。

echo $LETTERS[0][0];

输出 1

编辑的问题答案

echo "element [0][0]: {$LETTERS[0][0]}";
于 2013-03-08T14:07:25.773 回答
3

在这里工作:

php > $A = array(1,0,1,1,1,0,1,1,1);                                        
php > $B = array(1,1,1,0,1,0,1,0,1);
php > $C = array(1,1,1,0,1,0,1,1,1,0,1);
php > $LETTERS= array($A,$B,$C);
php > echo $LETTERS[0][0];
1

好的,鉴于您的编辑... PHP 的解释器并不贪婪。当您将该多维数组嵌入到字符串中时,它不会引入多个数组维度。例如

echo "$arr[0][0]"

被视为

echo "$arr[0]", "[0]"
      ^^^^--arrray
                 ^^^-random string

这样做会echo $array强制数组进入字符串上下文,但 PHP 不会转储数组的内容,它只会打印出来Array,这就是你得到Array[0].

要强制 PHP 查看整个数组引用,您需要使用以下{}符号:

echo "{$arr[0][0]}";

这将正确处理额外的数组维度。

顺便说一句,这对于字符串中的对象也很有用,例如

echo "$obj->attribute->attribute"

最好写成

echo "{$obj->attribute->attribute}"
于 2013-03-08T14:07:32.897 回答
1

该代码工作正常。现场演示在这里

编辑:在您的版本之后,正确的方法是:

echo "element [0][0]: {$LETTERS[0][0]}";

这样 PHP 将正确扩展您的变量。

于 2013-03-08T14:08:22.243 回答