Кажется также, что есть отношение к среде:
У меня была ошибка "неверный аргумент предоставлен foreach ()" только в среде разработчиков, но не в prod (я работаю на сервере,не localhost).
Несмотря на ошибку, var_dump указал, что с массивом все в порядке (в обоих случаях app и dev).
if (is_array($array))
вокруг foreach ($array as $subarray)
решило проблему.
Извините, что не могу объяснить причину, но, поскольку мне потребовалось некоторое время, чтобы найти решение, я подумал о том, чтобы лучше поделиться этим в качестве наблюдения.