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

如何在PHP中从数组提取重复日期并统计viewscount总和

PHP数组合并重复日期的viewscount求和方案

要实现检测数组中重复日期并对对应viewscount求和的需求,可以通过以下步骤完成:

实现代码

// 输入数组
$originalData = [
    ['viewscount' => 18, 'date' => '2022-07-14'],
    ['viewscount' => 19, 'date' => '2022-07-18'],
    ['viewscount' => 1, 'date' => '2022-07-19'],
    ['viewscount' => 1, 'date' => '2022-08-03'],
    ['viewscount' => 1, 'date' => '2022-08-03'],
];

// 临时数组用于按日期聚合数据
$aggregatedData = [];

foreach ($originalData as $item) {
    $dateKey = $item['date'];
    if (isset($aggregatedData[$dateKey])) {
        // 日期已存在,累加viewscount
        $aggregatedData[$dateKey]['viewscount'] += $item['viewscount'];
    } else {
        // 日期不存在,初始化数据
        $aggregatedData[$dateKey] = $item;
    }
}

// 转换为索引数组,匹配期望输出格式
$result = array_values($aggregatedData);

// 打印结果
print_r($result);

代码说明

  1. 临时数组聚合:利用日期作为数组键,快速判断当前日期是否已存在,避免重复遍历查找,提升处理效率
  2. 累加逻辑:遍历原数组时,若日期已在临时数组中,直接将viewscount值相加;否则将当前元素存入临时数组
  3. 格式转换:使用array_values()将以日期为键的关联数组转换为索引数组,与示例输出结构完全匹配

运行上述代码后,将得到期望的输出结果:

Array
(
    [0] => Array
        (
            [viewscount] => 18
            [date] => 2022-07-14
        )

    [1] => Array
        (
            [viewscount] => 19
            [date] => 2022-07-18
        )

    [2] => Array
        (
            [viewscount] => 1
            [date] => 2022-07-19
        )

    [3] => Array
        (
            [viewscount] => 2
            [date] => 2022-08-03
        )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:18:18