Почему возникает такая ошибка при использовании foreach с объектом?

вот код

foreach ($serId as $catS) {
       $idSer[]=  $catS->id_serial;}
    var_dump( $idSer);


получаю такой массив

[0]=> int(5) [1]=> int(7) [2]=> int(13) [3]=> int(14) [4]=> int(7) [5]=> int(60) [6]=> int(70) [7]=> int(77)


делаю так
foreach ($serId as $catS) {
        if($catS->id_serial) {
            $idSer['id'] = $catS->id_serial;
            $idSer['nesting'] = 'serial';
        }
     var_dump( $idSer);

получаю

array(2) { ["id"]=> int(17) ["nesting"]=> string(6) "serial" }

как мне получить id всех объектов в массив с условием что id_serial не равно null
  • Вопрос задан
  • 154 просмотра
Решения вопроса 1
@MadridianFox
Web-программист, многостаночник
Вы в цикле перезаписываете 2 элемента одного массива, а надо добавлять массив с двумя элементами:
foreach ($serId as $catS) {
    if($catS->id_serial) {
        $idSer[]=[
            'id'=>$catS->id_serial,
            'nesting'=>'serial'
        ];
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
nelolka
@nelolka
так у вас нет добавления в массив. Вы просто переназначаете в цикле значение переменной. В итоге получаете лишь последнее значение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы