不能将标量值用作数组
Posted
技术标签:
【中文标题】不能将标量值用作数组【英文标题】: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
而回声什么也不做。为什么 ?什么是解决方案?
【问题讨论】:
【参考方案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];
【讨论】:
以上是关于不能将标量值用作数组的主要内容,如果未能解决你的问题,请参考以下文章
PHP错误:不能将stdClass类型的对象用作数组(数组和对象问题)[重复]
“不能将 Laminas\Diactoros\UploadedFile 类型的对象用作数组”在 Cakephp 4 中具有多上传输入