不能将标量值用作数组

时间:2011-10-06 23:56:43

标签: php arrays loops for-loop

我正在尝试这段代码:

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

并且回声什么都不做。为什么?什么是解决方案?

3 个答案:

答案 0 :(得分:11)

以下是您想要做的想法。将您的//problem here行替换为:

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

但我强烈建议不要这样做。只需使用您的二维数组。

答案 1 :(得分:5)

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

 $arr.$x[]

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

答案 2 :(得分:1)

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

尝试通过

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