compare должна не просто говорить равно или не равно, а должна еще сообщать какое число больше или меньше, поэтому возвращать она должна не bool, а больше или меньше, обычно делают возвращаемый тип int (0 если равны и -1 и 1 в случае если одно из чисел больше другова)
как сделать такое сравнение для произвольных массивов ? это спорный вопрос и универсального ответа нет.
как минимум надо предоставить возможность добавления своей логики сравнения различных типов.
например как в паттерне стратегия, добавлять свои способы сравнения, если бы я делал я бы скорей всего в эту сторону делал.
другое мелко улучшение, я бы убрал все публичные методы по изменению класса после создания, оставил бы только один публичный метод это compare, чтобы было видно цель этого класса, а какие то методы бы просто удалил (getFlags например)
ну и в целом такое не особо нужно в php, непонятно зачем это применять, код нормальный, понятный, даже есть тесты.