---
title: "firstWhere() - Пошук елемента за атрибутом"
url: https://laravelukraine.com/blog/firstwhere-posuk-elementa-za-atributom
date: 2026-09-07
---

# firstWhere() - Пошук елемента за атрибутом

Потрібно знайти перший елемент, що відповідає умові?

`firstWhere()` виглядає чистіше, ніж `filter()->first()`.

**Переваги:**

* Один метод замість двох
* Автоматична обробка null
* Підтримує оператори

**Оператори:**

Такі ж, як у where(): =, !=, >, <, >=, <=

Порада: використовуйте другий параметр для значення за замовчуванням, якщо елемент не знайдено.

```php
$users = collect([
  ['id' => 1, 'name' => 'John', 'age' => 25],
  ['id' => 2, 'name' => 'Jane', 'age' => 30],
  ['id' => 3, 'name' => 'Bob', 'age' => 35],
]);

// ПОГАНО: два методи
$user = $users->filter(fn($u) => $u['age'] > 30)->first();

// ДОБРЕ: один метод
$user = $users->firstWhere('age', '>', 30);
// ['id' => 3, 'name' => 'Bob', 'age' => 35]

// Точна відповідність (оператор за замовчуванням - =)
$user = $users->firstWhere('name', 'Jane');

// Із значенням за замовчуванням
$guest = ['name' => 'Guest'];
$user = $users->firstWhere('age', '>', 100) ?? $guest;

// Eloquent-колекції
$featured = Post::all()->firstWhere('featured', true);

// Кілька умов - first із callback
$user = $users->first(
  fn($u) => $u['age'] > 30 && $u['name'] !== 'Bob'
);
```
