Существует ли простое решение такой задачи?
Думаю, существует. А что?
По сабжу:
Создайте функцию-фильтр и сделайте обход вашего массива с дополнительной проверкой
В общем всё понятно.
Все манипуляции делайте в реляционной базе данных.
Если вам нужно что-то посчитать, сравнить, хранить.
В конце концов, вам же нужно хранить эти данные.
И по-хорошему из можно вообще не доставать из базы.