array_all()函数用于检查数组所有元素是否均满足回调条件,任一不满足即返回false;其语义明确、社区广泛采用,替代方案可用array_reduce()或foreach循环实现。

用 array_all() 函数最直接——它专为“全满足”场景设计,回调返回 true 的元素必须覆盖整个数组,任一失败即刻终止并返回 false。
用 array_all() 检查全部元素
这是 PHP 社区广泛采用的语义明确函数(虽非原生,但已成事实标准),签名清晰:array_all(array $array, callable $callback): bool
- 回调函数接收
$value和$key,必须返回布尔值 - 只要有一个元素让回调返回 false,整个函数立刻返回 false,不继续遍历
- 若所有元素都返回 true,最终返回 true
没有 array_all() 时的替代写法
若环境不支持该函数,可用 array_reduce() 或手动循环模拟:
-
array_reduce($arr, fn($carry, $item) => $carry && your_condition($item), true)—— 初始值设为 true,逐个与条件结果做逻辑与 - 或用
foreach遍历,遇到第一个不满足的就return false,循环结束未退出则return true
别和类似函数混淆
注意区分用途相近但逻辑不同的函数:
-
array_any():只要一个满足就返回 true(对应 JS 的some()) -
array_filter():返回满足条件的元素子集,不直接返回布尔结果 -
in_array()或array_search():只查值是否存在,不支持复杂条件判断
实际例子:检查用户数组是否全员成年
假设 $users = [['name' => 'Alice', 'age' => 28], ['name' => 'Bob', 'age' => 17]];
立即学习“PHP免费学习笔记(深入)”;
- ✅ 全部 ≥18:
array_all($users, fn($u) => $u['age'] >= 18)→ false(因 Bob 不满足) - ✅ 全部有邮箱字段:
array_all($users, fn($u) => isset($u['email']))→ false(若任一缺失)



















