不能将标量值用作数组


Cannot use a scalar value as an array

我正在尝试这个代码:

for ($x = 0; $x < $numCol; $x++) {
    for ($i = 0; $i < $numRows; $i++) {
        $arr.$x[] = $todas[$i][$x]."'n"; //problem here
    }
}
echo $arr0[0];
echo $arr1[0];
...

但是我得到这个warning: Cannot use a scalar value as an array

和回声不做任何事情。为什么?那么解决方案是什么呢?

这是你认为你想要做的。将//problem here行替换为:

${'arr' . $x}[] = $todas[$x][$i]."'n";

但是我强烈建议不要那样做。

我想你的意思是:${'arr'.$x}[]而不是$arr.$x[]

 $arr.$x[]

将$arr和$x的字符串表示形式连接在一起,因此最终得到的是'Array0'[] = ...而不是$arr0[]

当你写$arr.$x[]时,它等于$arr[$x][]

尝试用

替换回声
echo $arr[0][0];
echo $arr[1][0];