PHP-为什么可以';从多维数组的第二个元素访问数据/
我无法通过谷歌搜索找到任何有用的例子或在线帮助,解决方案应该很简单,但结果并不是我所期望的 我有3个阵列-列出几个: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]的元素: $
$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就可以正确地扩展变量。