Сделай ООПэшно. Метод с рекурсией сравнения. Впихиваешь в метод сравнение необходимых пролей, потом запускаешь подобный метод для сравнения вложенных элементов. И так пока не поймешь, что сложные объекты с множественными вложениями лучше не сравнивать. А найти другой способ их равенства, например какой-нибудь ID.
$qually = false;
if ($this->a == $quals->a ...) {
$qually = $equally & $this->subA->equally($quals->subA);
...
}
return $qually;
Что-то такое. Только не на скорую руку.