> На каждый элемент массива.
Похоже тут проблема. Это скорее всего garbage collector барахлит.
Попробуйте замерять потребление памяти на тестовой выборке с помощью:
echo memory_get_usage() / 1024 / 1024;
А потом в циклах, где данные используются, попробуйте ручками всюду unset поставить.