Нельзя использовать скалярное значение в качестве массива - PullRequest
8 голосов
/ 07 октября 2011

Я пытаюсь этот код:

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 ]

11 голосов
/ 07 октября 2011

Вот что вы думаете вы хотите сделать.Замените вашу строку //problem here на:

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

Но я настоятельно рекомендую не делать этого.Просто используйте свой двумерный массив.

5 голосов
/ 07 октября 2011

Я думаю, вы имели в виду: ${'arr'.$x}[] вместо $arr.$x[].

 $arr.$x[]

Объединит строковое представление $ arr и $ x вместе, так что вы получите что-то вроде 'Array0'[] = ... вместо$arr0[]

1 голос
/ 07 октября 2011

Когда вы пишете $arr.$x[], оно равно $arr[$x][]

Попробуйте заменить эхо на

echo $arr[0][0];
echo $arr[1][0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...