2011-10-06 44 views
8

我想這個代碼:無法使用標量值作爲數組

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

和回聲什麼也不做。爲什麼?什麼是解決方案?

回答

11

這裏就是你覺得你想要做

$arr.$x[] 

將串聯$改編的字符串表示和$ X一起。替換爲您//problem here行:

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

但我強烈反對這樣做。只需使用你的二維數組。

1

當你寫$arr.$x[],它等於$arr[$x][]

嘗試通過

echo $arr[0][0]; 
echo $arr[1][0]; 
5

更換您的回聲,我想你的意思是:${'arr'.$x}[],而不是$arr.$x[]。所以你最終的東西像'Array0'[] = ...代替$arr0[]