Но, когда картинка всего одна, то в FILE_VALUE хранится сразу массив
Нормальное решение - поправить вот эту логику заполнения.
Если должна быть коллекция - значит должна быть коллекция. И пофиг, из десяти, одного элемента или вовсе пустая.
И указанный выше цикл дает неожиданный результат
Хочу напомнить, что даже PHP 5.4 живёт последние 10 дней. Обновляйте PHP.
Я всё-таки надеюсь, что вы даже не пытаетесь что-то разрабатывать с выключенным выводом ошибок. А начиная с 5.4.0 обращение к строке как массиву по строковому ключу провоцирует E_WARNING. Но первый байт (по нулевому смещению. т.е.) при этом всё ещё выводится.