Зачем на каждое значение из первого файла перечитывать второй?
Речь не о языке программирования, а о архитектуре приложения. Тебе нужен индекс, некий массив, лоучше в быстрой памяти (оперативной) который бы позволил за минимальное время 'константу' или хотя бы 'логарифм' найти запись во втором файле.
Обычный массив key-value (array в php) очень эффективно работает, в крайнем случае вместо значений можно хранить хеши (пракда проверить на случай коллизий все же рекомендуется), т.е. тебе достаточно загрузить в оперативную память второй массив, сохранив значения в ключах массива $index[$value]=0, и затем построчно загружать данные из первого файла и проверять isset($index[$value])
p.s. если же данные в оперативную память сохранять не вариант, используй базы данных, там готовые индексы, оптимизированные на работу с диском, самое простое, начни работать с sqlite