You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel9环境下如何过滤含嵌套数组的关联数组(无需foreach)

当然可以,不用写foreach循环,用PHP数组函数或者Laravel集合就能搞定:

方案1:纯PHP数组函数实现

利用array_filter嵌套检查子项中是否存在数组:

$result = array_filter($data, function($item) {
    // 过滤出子项里的数组,只要数量大于0就保留当前元素
    return !empty(array_filter($item, 'is_array'));
});

方案2:更高效的存在性检查

用array_reduce提前终止检查,找到第一个数组就返回true,性能更好:

$result = array_filter($data, function($item) {
    return array_reduce($item, function($hasArray, $value) {
        // 一旦找到数组就停止迭代
        return $hasArray ?: is_array($value);
    }, false);
});

方案3:Laravel集合风格写法

既然用的是Laravel,直接转集合处理更优雅:

$result = collect($data)
    ->filter(fn($item) => collect($item)->contains('is_array'))
    ->toArray();

这几种方式都能得到你想要的结果,全程不用显式写foreach循环。

内容的提问来源于stack exchange,提问作者Lucky Person

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 09:15:40