2011-10-06 12 views
8

sto provando questo codice:non possono utilizzare un valore scalare come 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]; 
... 

ma ottengo questo warning: Cannot use a scalar value as an array

e gli echi non fare nulla. Perché ? e qual è la soluzione?

risposta

11

Ecco cosa si pensa si vuole fare. Sostituire la vostra linea //problem here con:

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

Ma io consiglio vivamente contro farlo. Usa semplicemente la tua matrice bidimensionale.

1

Quando si scrive $arr.$x[], è pari a $arr[$x][]

Provare a sostituire i vostri echi da

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

Penso che volevi dire: ${'arr'.$x}[] invece di $arr.$x[].

$arr.$x[] 

concatenerà la rappresentazione di stringa di $ arr e $ x insieme così si finisce con qualcosa come 'Array0'[] = ... invece di $arr0[]

Problemi correlati