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

将Google Analytics每日访客JSON转PHP数组并按月汇总访客数

嗨,我来帮你搞定这个Google Analytics数据按月汇总的需求!咱们分两步走:先把JSON转成PHP数组,再按月份累加访客数,下面是完整的实现方案:

实现步骤

1. 读取并解析JSON数据

首先得把你的JSON文件转成PHP能处理的数组。假设你的JSON是标准结构(修正了你给出的示例格式,确保PHP能正确解析):

[
  {"Dagindex": "1-1-2017", "Gebruikers": 96},
  {"Dagindex": "2-1-2017", "Gebruikers": 116},
  {"Dagindex": "17-1-2017", "Gebruikers": 130},
  {"Dagindex": "1-2-2017", "Gebruikers": 89}
]

用这段PHP代码读取并解析它:

// 读取JSON文件内容,替换成你的实际文件路径
$jsonContent = file_get_contents('analytics-data.json');
// 转换为PHP关联数组
$dailyData = json_decode($jsonContent, true);

// 检查JSON解析是否成功
if (json_last_error() !== JSON_ERROR_NONE) {
    die('JSON解析出错啦:' . json_last_error_msg());
}

2. 按月汇总访客数

接下来遍历每日数据,把同一个月的访客数累加起来。这里要注意你的日期格式是日-月-年,必须用DateTime类指定格式解析,不然会搞混月份和日期:

$monthlyVisitors = [];

foreach ($dailyData as $dayEntry) {
    // 解析日期,明确指定格式为d-m-Y(日-月-年)
    $date = DateTime::createFromFormat('d-m-Y', $dayEntry['Dagindex']);
    if (!$date) {
        continue; // 跳过无效的日期数据,避免程序崩溃
    }
    
    // 用「年-月」作为键,避免跨年的同一个月被错误合并
    $monthKey = $date->format('Y-m');
    $visitors = (int)$dayEntry['Gebruikers'];
    
    // 累加对应月份的访客数
    if (isset($monthlyVisitors[$monthKey])) {
        $monthlyVisitors[$monthKey] += $visitors;
    } else {
        $monthlyVisitors[$monthKey] = $visitors;
    }
}

// 可选:按时间顺序排序结果,让输出更直观
ksort($monthlyVisitors);

// 打印汇总后的数组
print_r($monthlyVisitors);

预期输出

运行完上面的代码,你会得到类似这样的按月汇总结果:

Array
(
    [2017-01] => 1895
    [2017-02] => 2103
    [2017-03] => 2012
    ...
)

关键提示

  • 日期格式不能错:一定要用createFromFormat指定d-m-Y,否则PHP可能会把1-1-2017错误解析成其他格式的日期。
  • 跨年处理要注意:用Y-m作为月份的键,能完美区分不同年份的同一个月(比如2017年1月和2018年1月)。
  • 容错机制不可少:添加了无效日期的跳过逻辑,避免个别异常数据导致整个程序中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:42:08