【问题标题】:Cannot use a scalar value as an array不能将标量值用作数组
【发布时间】:2011-12-02 15:59:12
【问题描述】:
我正在尝试这段代码:
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
而回声什么也不做。为什么 ?什么是解决方案?
【问题讨论】:
标签:
php
arrays
loops
for-loop
【解决方案1】:
这就是你认为你想做的事。将您的 //problem here 行替换为:
${'arr' . $x}[] = $todas[$x][$i]."\n";
但我强烈建议不要这样做。只需使用您的二维数组即可。
【解决方案2】:
我想你的意思是:${'arr'.$x}[] 而不是 $arr.$x[]。
$arr.$x[]
将 $arr 和 $x 的字符串表示形式连接在一起,因此您最终会得到类似 'Array0'[] = ... 而不是 $arr0[] 的内容
【解决方案3】:
当你写$arr.$x[]时,它等于$arr[$x][]
尝试用
替换你的回声
echo $arr[0][0];
echo $arr[1][0];