в php есть SplFixedArray - он съест меньше памяти. Имхо ты пытаешься повесить на php то, что ему делать не положено. Я бы реализовал эту логику на стороне того, кто хранит эти данные, например mysql. Если тебе нужно найти пересечения множеств, очень удобно использовать
пересечения в redis.