Как проверить, что все элементы массива подходят под условие
Короткий ответ
В PHP 8.4 есть array_all() и array_any():
<?php
$ages = [21, 34, 18];
var_dump(array_all($ages, fn ($age) => $age >= 18));
var_dump(array_any($ages, fn ($age) => $age > 60));Результат:
bool(true)
bool(false)В старых версиях
Отфильтруйте массив и сравните количество:
<?php
$ages = [21, 34, 18];
$adults = array_filter($ages, fn ($age) => $age >= 18);
var_dump(count($adults) === count($ages));Результат:
bool(true)Функции из этого ответа
- array_all — Проверяет, подходят ли под условие все элементы.
- array_any — Проверяет, подходит ли под условие хотя бы один элемент.
- array_filter — Оставляет в массиве элементы, прошедшие проверку.