php 8 并未新增 array_find 函数,截至 php 8.3 官方标准库中仍不存在该内置函数;最接近替代是 array_filter 配合 reset 或自定义封装函数。

PHP 8 并没有新增 array_find 函数。
PHP 8 中并不存在 array_find
截至 PHP 8.3,官方标准库中**没有名为 array_find 的内置函数**。你可能混淆了其他语言(如 JavaScript 的 Array.prototype.find)或某些第三方库(如 Laravel 的 Arr::first())、自定义函数,或是误记了 PHP 的现有函数名。
PHP 中最接近的替代函数是 array_filter 和 array_values
若想查找满足条件的第一个元素,常用组合是:
-
array_filter($array, $callback)返回所有匹配项组成的数组(键可能保留) - 再用
array_values(...)[0]或reset(...)取第一个值 - 若无匹配项,
array_filter返回空数组,array_values([])[0]会触发 Notice: Undefined offset,而reset([])安全返回 false
示例:
$arr = [1, 2, 3, 4, 5]; $result = reset(array_filter($arr, fn($x) => $x > 10)); // false $result = reset(array_filter($arr, fn($x) => $x > 2)); // 3
PHP 8.1+ 可用 array_key_first / array_key_last 辅助定位
虽然不能直接“查找值”,但若你已通过条件得到键(比如用 foreach 手动遍历),可用:
-
array_key_first($filtered)获取第一个匹配键(PHP 8.0+) -
$filtered[array_key_first($filtered)]取对应值 - 若
$filtered为空,array_key_first返回 null
如需类似 find 的语义,建议封装一个安全函数
例如:
function array_find(array $array, callable $callback) {
foreach ($array as $value) {
if ($callback($value)) {
return $value;
}
}
return null; // 或 false、throw Exception,按需定义
}
调用:array_find([1,2,3], fn($x) => $x === 5) → 返回 null(未找到)
不复杂但容易忽略:PHP 原生始终没有 array_find,别在生产环境依赖它,检查函数是否存在可用 function_exists('array_find') —— 结果恒为 false。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











