Если файлы большие, я бы использовал wc -l $filename
для подсчета строк в каждом файле. Если они очень малы, вы можете использовать count(file($filename))
Независимо от их размера, вам следует где-то кешировать эту информацию. Есть ли причина, по которой вы не используете базу данных для хранения этой информации?