@MagoVinch

Как реализовать фильтрацию массива объектов с несколькими параметрами, к которых может быть несколько значений?

Есть массив объектов, у объекта несколько параметров, а у каждого параметра может быть несколько значений. Нужно делать поиск по этому массиву с заданными значениями параметров. Например

Массив состоит из объектов типа Машина
Параметры машины
вес - 2000кг
цвет - красный, синий
скорости - 1,2,3, назад

пример запроса все - [неуказан], цвет - красный, скорость - 2
  • Вопрос задан
  • 384 просмотра
Решения вопроса 1
Writerim
@Writerim
Заполнить позже...
Я могу вам предложить 2 способа решения.
Первый банальный foreach со сравнением.
Второй потребует память ПК, но сильно может ускорить процесс фильтрации.
На моменте сбора объектов в массив вам надо создать еще один в котором ключом будет свойство, а значениями ссылки на объекты.
$arrayProp = array(
  'red' => array( &link_to_object ),
  '2'   => array( &link_to_object )
);

Дальше вам надо только найти уникальные объекты в этом массиве по необходимым ключам.
Память на второй массив почти не будет уходить, так как там будет храниться ссылка на объект. ссылка мало очень весит
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы