Проблемы с созданием ассоциативного массива с другим массивом в PHP

Я пытаюсь создать ассоциативный массив в PHP, используя объект. Объект — это значения из базы данных, называемой категорией. Он имеет только два значения: идентификатор и поле имени.

Вот что у меня есть:

$category = $em->getRepository('AppBundle:Category')->findAll();

$stuff = array();

foreach($category as $cat) {
    $stuff[$cat->getName()] = $stuff[$cat->getId()];
}

Но я получаю эту неприятную ошибку:

Примечание: Неопределенное смещение: 1

Я должен сказать, что я использую Symfony 3. Любая помощь была бы здоровой.


person Kaley36    schedule 14.05.2017    source источник
comment
Я думаю, что это $stuff[$cat->getId()]; должно быть этим $cat->getId();, не так ли?   -  person Sahil Gulati    schedule 14.05.2017


Ответы (3)


Вы на правильном пути, но вам нужно удалить echo, так как вы ничего не пытаетесь вывести. Вы также пытаетесь присвоить значение из массива, в который пытаетесь ввести значение.

$stuff[ $cat->getName() ] = $cat->getId();
person Nathan Dawson    schedule 14.05.2017

Извините, я просто опустил значение и заменил на $cat->getId() вместо $stuff[$cat->getId()], и это сработало.

person Kaley36    schedule 14.05.2017

У вашего массива $stuff нет индекса 1, поэтому это вызовет эту проблему.

Это вызвано $stuff[$cat->getId()];, который должен быть $cat->getId();

foreach($category as $cat) {
    $stuff[$cat->getName()] = $cat->getId();
}
person LF00    schedule 14.05.2017