我找不到任何有用的示例或通过谷歌搜索在线帮助,解决方案应该很简单,但结果不是我所期待的。
我有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]";
出于某种原因,这不会起作用。我需要保留除实际变量之外的所有内容。任何人都知道为什么会这样吗?
答案 0 :(得分:3)
您需要重新检查您的代码。
echo $LETTERS[0][0];
输出1
编辑问题答案
echo "element [0][0]: {$LETTERS[0][0]}";
答案 1 :(得分: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的翻译并不贪心。将多维数组嵌入字符串时,它不会引入多个数组维度。 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}"
答案 2 :(得分:1)