Top.Mail.Ru
Ответы

Недопустимый аргумент для foreach

Здравствуйте, этот код работал в php 5.3 переводя в php 7.0 дошёл до цикла foreach - выдаёт две ошибки указывая на эту строку -

1
 foreach($arr_regions[$id_region] as $index=>$reg) 

Уведомление: Неопределенное смещение: 2 и Предупреждение: Недопустимый аргумент для foreach()

Подскажите пожалуйста , возможно что то не так исправил до foreach ?
Весь код здесь - Код

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Новичок
5мес

Переменная $arr_regions должна быть массивом и содержать элемент с индексом $id_region. Судя по всему, такого элемента не существует (то самое уведомление "Неопределенное смещение: 2").

В свою очередь, значением элемента $arr_regions[$id_region] должен быть массив.

Самый простой костыль - подставить пустой массив, если элемента нет:

1
 foreach($arr_regions[$id_region] ?? [] as $index => $reg) 
Аватар пользователя
Просветленный
5мес

Проверяй, что $arr_regions[$id_region] существует и является массивом, например:

if ($id_region && !$magaz && isset($arr_regions[$id_region]) && is_array($arr_regions[$id_region])) { foreach ($arr_regions[$id_region] as $index=>$reg) { ... } }