Как работать с большими массивами на php?
Я думаю, самым разумным решением будет писать эти массивы в базу и сравнивать простым запросом. Именно так в общем случае решается задача "сравнение двух больших массивов данных на РНР." Конкретную же реализацию можно будет предложить только если будет конкретный вопрос, без "может быть " и "например".

Да, память в БД тоже не бесплатная, но тут надо уже определиться - или мы хотим ворочать гигазы варезов, или сидеть на копеечном впс с 500 метрами памяти. Одновременно не получится.

Можно конечно извернуться и скомпилить специальное расширение, которое как раз и предназначается для работы с иллимонами элементов, но опять же - все зависит от возможностей и потребностей.
Чтобы не в памяти, можно на диск. Сохранить массив чисел в файл. Для компактности как бинарный файл, по 4 байта на число pack() (если это 32-битные id ВКонтакте вы сравниваете. Facebook id — лонги). Отсортированным. Тот же ВК умеет отдавать список сортированным.  Сохранить так же второй.

Открыть оба файла, считать fread($fh, 4) из каждого по числу: число А, число Б.
А больше Б ? Читаем новый Б.
Б больше А ? Читаем новый А.
Равны?  Ура, это число сохраняем в «пересечение». Читаем новый А и новый Б.
Закончился один из файлов — пересечений больше нет.