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

如何在Laravel6/PHP7.4中统计嵌套数组中指定CID的出现次数?

统计嵌套数组中指定CID的出现次数(Laravel 6/PHP 7.4)

方法一:Laravel 集合便捷实现

利用Laravel集合的链式方法可以快速处理嵌套结构,代码简洁直观:

// 目标CID
$targetCid = '99201000021102';
// 假设$response是你获取到的完整数组数据
$count = collect($response['data'])
    ->flatten() // 将嵌套的二级数组扁平化为一维集合
    ->where('cid', $targetCid) // 筛选出CID匹配的元素
    ->count(); // 统计匹配元素的数量

// 输出结果:2
dd($count);

方法二:原生PHP循环实现

如果更倾向原生PHP写法,双层循环直接遍历统计:

$targetCid = '99201000021102';
$count = 0;
$groups = $response['data'];

// 遍历外层分组数组
foreach ($groups as $group) {
    // 遍历分组内的每个元素
    foreach ($group as $item) {
        // 严格匹配CID(避免类型转换导致的错误)
        if ($item['cid'] === $targetCid) {
            $count++;
        }
    }
}

// 输出结果:2
echo $count;

方法三:原生PHP函数式实现

结合array_reduce和array_column实现无循环统计:

$targetCid = '99201000021102';
$count = array_reduce($response['data'], function($total, $group) use ($targetCid) {
    // 提取当前分组的所有CID
    $cids = array_column($group, 'cid');
    // 统计当前分组中匹配目标CID的数量,累加到总数
    return $total + count(array_filter($cids, function($cid) use ($targetCid) {
        return $cid === $targetCid;
    }));
}, 0);

// 输出结果:2
echo $count;

常见问题排查

如果之前循环实现结果不符合预期,可能的原因:

  • 未遍历内层数组:仅处理了$response['data']的外层元素,未遍历每个元素内部的二级数组
  • 匹配条件不严谨:使用松散比较==而非严格比较===,可能因类型转换导致误判

内容的提问来源于stack exchange,提问作者Hải Nghĩa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:35:31