Как проверить существует ли значение в массиве объектов
Всем привет. Подвис на такой проблеме. Есть следующая структура array из 3х объектов Post. Post имеет свойство date,которое в свою очередь есть коллекцией Datatime. Как проверить содержится ли определенная дата в в данной структуре?
Ответы (1 шт):
Автор решения: Dmitry Kozlov
→ Ссылка
Если "есть коллекцией" является, например, ArrayCollection, то можно так:
$searchValue = new DateTime();
$searchValue->setTime(0,0,0);
$founded = array_filter($postArray, static function ($post) use ($searchValue) {
return !$post->date->filter(static function ($date) use ($searchValue) {
// Для простого сравнения даты используем '=='
// можете применить другой алгоритм сравнения, который вернет true или false
return $date == $searchValue;
})->isEmpty();
});
if(count($founded) > 0) {
// искомое значение содержится в структуре
}