PHP изменить элемент массива объекта - PullRequest
0 голосов
/ 12 сентября 2018

У меня следующая проблема: я хотел бы изменить элементы объекта. Доступ к элементу работает так:

foreach($ob as $element){echo $element->id;}

Если я делаю то же самое

foreach($ob as $element){$element->id='XYZ';}

Но это не сохранит в объекте

Я попробовал следующее:

 foreach($ob as &$element){$element->id='XYZ';}

Но в этом случае я получил следующую ошибку:

Итератор не может использоваться с foreach по ссылке

На самом деле $ ob является объектом запроса CakePHP выглядит так:

    [
    (int) 0 => object(App\Model\Entity\Document) {
            'id' => (int) 26,'name'=>'Fax'}
(int) 1 => object(App\Model\Entity\Document) {
                'id' => (int) 26,'name'=>'Email'}
]

и я хочу изменить идентификаторы.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 13 сентября 2018

Я много работаю с массивами объектов.
Что лучше всего сработало для меня, так это обычный for() Loop

$iobcount = count($ob);

for($iob = 0; $iob < $iobcount; $iob++)
  $ob[$iob]->id = 'XYZ';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...