Да уж, жосско. Объемные файлы и структура файлов какая то кривая. Вот это ИД должно быть индексом вот этих всех массивов с title и остальной инфой. Тогда бы все было легко и просто. А так... Это очень много ресурсов сервера надо использовать.
Я бы в начале распарсил в начале вот этот broadcast.json - собрал бы в отдельный файл пары "_id => индекс массива в котором лежит этот ИД" или же сразу(да так даже и проще) "_id => title" (и все остальные поля которые могут понадобиться). Конечно это тоже трудоемкий процесс. Но зато потом проблем не будет. Мы один раз потратимся и все. А не будем каждый раз это делать.
А еще я хочу сказать что для больших объемов данных лучше xml использовать, а не json. Дело в том что для хмл в пхп есть крутая фишка - построчное считывание(не весь файл грузится в память, а по небольшим частям). Т.Е. пхп даже гиговые хмл файлы схавает и не подавится. А вот на счет того что такое есть и для жсон я не уверен. Скорее всего нет.