在PHP中,为什么访问数组元素会抛出数组作为字符串错误?

在PHP中,为什么访问数组元素会抛出数组作为字符串错误?,php,arrays,string,comparison,Php,Arrays,String,Comparison,我做了一些搜索,没有找到任何能完全回答我问题的帖子。 为了便于讨论,我使用以下代码生成了一个PHP数组: $i = 5; for($i = 0; $i < $j; $i++) { $multiArray[0][$i] = $i; $multiArray[1][$i] = $i; } $i=5; 对于($i=0;$i

我做了一些搜索,没有找到任何能完全回答我问题的帖子。 为了便于讨论,我使用以下代码生成了一个PHP数组:

$i = 5;
for($i = 0; $i < $j; $i++) {
   $multiArray[0][$i] = $i;
   $multiArray[1][$i] = $i;
}
$i=5;
对于($i=0;$i<$j;$i++){
$multiArray[0][$i]=$i;
$multiArray[1][$i]=$i;
}
当我尝试使用以下工具访问它时:

for($i = 0; $i < $j; $i++) {
   echo "$multiArray[0][$i]";
   echo "$multiArray[1][$i]";
}
($i=0;$i<$j;$i++)的
{
回显“$multiArray[0][$i]”;
echo“$multiArray[1][$i]”;
}
我得到:

注意:第3行的数组到字符串转换

注意:第4行的数组到字符串转换

…x4

当我用
printf(“%d”,$multiArray[0][$I])
替换
echo
时,它可以很好地打印。当我访问的元素显然是int(PHP通过
var_dump()
知道它)时,为什么我必须明确地告诉PHP我在请求int?我不是在访问数组,而是访问数组中的一个元素

谢谢

最多支持一个嵌套元素。换句话说,
“foo[0][1]”
被解释为
“{$foo[0]}[1]”
。这意味着它试图在该点将数组
$foo[0]
解释为字符串,并将其插入字符串中

但在这里引用完全是荒谬的。您不需要字符串插值,只需要输出一个变量值:

echo $multiArray[0][$i];
试试这个:

for($i = 0; $i < $j; $i++) {
 echo $multiArray[0][$i]; 
 echo $multiArray[1][$i]; 
}
($i=0;$i<$j;$i++)的
{
echo$multiArray[0][$i];
echo$multiArray[1][$i];
}

您的代码正在分析字符串而不是数组,请尝试删除引号。数组后的[]括号被视为字符串而不是参数。请使用下面的代码

<?php
$j = 5;
for($i = 0; $i < $j; $i++) {
   $multiArray[0][$i] = $i;
   $multiArray[1][$i] = $i;
}

for($i = 0; $i < $j; $i++) {

   echo $multiArray[1][$i];
}

尝试删除双引号。对于($i=0;$i<$j;$i++){echo$multiArray[0][$i];echo$multiArray[1][$i];}