Недопустимый аргумент для foreach
Здравствуйте, этот код работал в php 5.3 переводя в php 7.0 дошёл до цикла foreach - выдаёт две ошибки указывая на эту строку -
foreach($arr_regions[$id_region] as $index=>$reg)
Уведомление: Неопределенное смещение: 2 и Предупреждение: Недопустимый аргумент для foreach()
Подскажите пожалуйста , возможно что то не так исправил до foreach ?
Весь код здесь - Код
Переменная $arr_regions должна быть массивом и содержать элемент с индексом $id_region. Судя по всему, такого элемента не существует (то самое уведомление "Неопределенное смещение: 2").
В свою очередь, значением элемента $arr_regions[$id_region] должен быть массив.
Самый простой костыль - подставить пустой массив, если элемента нет:
foreach($arr_regions[$id_region] ?? [] as $index => $reg)
Проверяй, что $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) { ... } }