Написать многомерный массив с foreach - PullRequest
2 голосов
/ 07 апреля 2011

Я пытаюсь записать некоторые значения в многомерный массив, но добавляется только последнее. Это мой код:

        $test =array();
        foreach($key as $val):
            $test = array('value1'=>$val->prop1,'value2' => $val->prop1);
        endforeach;

Где ошибка в моем коде?

РЕДАКТИРОВАТЬ: Это должно быть сделано в php.

Ответы [ 3 ]

5 голосов
/ 07 апреля 2011

Вы должны сделать:

 $test =array();
        foreach($key as $val):
            $test[] = array('value1'=>$val->prop1,'value2' => $val->prop1);
        endforeach;

Скручиваемые скобки указывают, какую позицию вставлять, например:

$test[2] = array('value1'=>$val->prop1,'value2' => $val->prop1);

Всегда вставляйте в третью позицию (третью, потому что она начинается с нуля)

Когда вы используете пустые скобки, как в первом примере, php добавляет новые элементы в конец массива (добавляется)

2 голосов
/ 07 апреля 2011

Я не знаю, на каком языке, но я бы предположил, что

$test = array('value1'=>$val->prop1,'value2' => $val->prop1);

Каждый раз выделяет новый массив.

1 голос
/ 07 апреля 2011

Используйте $arr[], чтобы добавить новое значение к концу $arr:

$test = array();
foreach ($key as $val):
    $test[] = array('value1' => $val->prop1, 'value2' => $val->prop1);
endforeach;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...