TGViewer
Заметки разработчика Заметки разработчика @dev_notes_ru · 458 subscribers
Post #1662 244
👩‍💻 Arr::onlyValues() & exceptValues() — фильтрация по значениям в Laravel 12.46

Хелперы Arr::only() и Arr::except() отлично фильтруют массивы по ключам. А что, если нужно отфильтровать именно по значениям?

Раньше приходилось комбинировать array_filter() с in_array() и писать callback-функции. В Laravel 12.46.0 появились два новых метода, которые делают это декларативно.

Arr::onlyValues() — оставляет только совпадающие значения:

$roles = ['admin', 'editor', 'viewer', 'guest'];
Arr::onlyValues($roles, ['admin', 'editor']);
// Результат: [0 => 'admin', 1 => 'editor']


Arr::exceptValues() — удаляет указанные значения:

$statuses = ['pending', 'completed', 'failed', 'shipped'];
Arr::exceptValues($statuses, ['failed', 'completed']);
// Результат: [0 => 'pending', 3 => 'shipped'] (ключи сохраняются!)


Строгий режим для смешанных типов:
Необязательный третий параметр strict: true включает проверку типа (===).

$mixed = [1, '1', 2, '2', 3];
Arr::onlyValues($mixed, [1, 2, 3], strict: true);
// Результат: [0 => 1, 2 => 2, 4 => 3] (только integer)


Где это удобно?
→ Фильтрация списков: статусы, роли, категории.
→ Очистка ввода: разрешённые/запрещённые значения.
→ Работа с конфигурациями и перечислениями (enum-like arrays).

Небольшое, но очень приятное дополнение для более чистого и выразительного кода.

📱 @dev_notes_ru

#PHP #Laravel12
More from @dev_notes_ru
  1. Apr 27, 2026Уникальный индекс при мягком удалении: решаем проблему дубликатов При использовании мягког…
  2. Apr 23, 2026Статические переменные в PHP: использование static внутри функций По данным исследования E…
  3. Apr 21, 2026Валидация массивов в Laravel без N+1: Form Request как построитель контекста Применение пр…
  4. Apr 13, 2026JSON в браузере: import или fetch — руководство по выбору Спойлер: import из JSON — это не…
  5. Apr 6, 2026Проксирование fetch() в серверном JavaScript Стандарт Fetch не специфицирует проксирование…
  6. Apr 2, 2026Taskfile: Когда пора отказаться от Makefile (а когда — нет) Makefile — инструмент с почти…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →