Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-为什么可以';从多维数组的第二个元素访问数据/_Php_Arrays_Parsing_Syntax_Multidimensional Array - Fatal编程技术网

PHP-为什么可以';从多维数组的第二个元素访问数据/

PHP-为什么可以';从多维数组的第二个元素访问数据/,php,arrays,parsing,syntax,multidimensional-array,Php,Arrays,Parsing,Syntax,Multidimensional Array,我无法通过谷歌搜索找到任何有用的例子或在线帮助,解决方案应该很简单,但结果并不是我所期望的 我有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); 然后我想创建一个数组,其中元素是引用上述3个数组中的每一个的[0]-[2]。声明如下: $LETTERS= array($A,$B,$C); 我试图用以下代码获取$A[x]的元素: $

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

我有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);
然后我想创建一个数组,其中元素是引用上述3个数组中的每一个的
[0]
-
[2]
。声明如下:

$LETTERS= array($A,$B,$C);
我试图用以下代码获取
$A[x]
的元素:

$LETTERS[0][0];
echo "element [0][0]: $LETTERS[0][0]";
但问题是它输出:
Array[0]
而不是
1

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

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

如何访问此二维数组中的数据

提前感谢您的帮助


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

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

出于某种原因,这是行不通的。除了实际变量之外,我需要将所有内容都排除在外。有人知道为什么会这样吗?

您需要重新检查代码

echo $LETTERS[0][0];
产出1

编辑的问题答案

echo "element [0][0]: {$LETTERS[0][0]}";
在这里工作:

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的解释器并不贪婪。当您将多维数组嵌入到字符串中时,它不会引入多个数组维度。e、 g

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}"

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

编辑:编辑后,正确的方法是:

echo“元素[0][0]:{$LETTERS[0][0]}”

这样PHP就可以正确地扩展变量。

不可以。是的,您需要使用“{$LETTERS[0][0]}”,这样PHP就可以正确地扩展变量。