本文介绍如何对嵌套 json 数据按 `date` 分组,再在每组的 `websites` 数组中基于 `website_name` 去重,并仅保留 `num_followers` 数值最大的对象(字符串数值按字典序比较时需注意,实际应转为整型确保正确性)。
在社交媒体数据聚合场景中,常会遇到同一日期下多个同名平台(如多个 "instagram")记录,但只需保留粉丝数最高的那条。原始数据结构为日期数组,每项含 websites 子数组,目标是:每个 date 下,每个 website_name 仅保留一条记录,且该记录的 num_followers 为该名称下的最大值。
实现逻辑分三步:

以下是完整、可运行的 PHP 示例代码(含类型转换与注释优化):
(int)$sites[$name]['num_followers']) {
$sites[$name] = $site;
}
}
// 将关联数组重置为索引数组,保持输出格式一致
$data[] = [
'date' => $day['date'],
'websites' => array_values($sites)
];
}
// 输出标准化 JSON(缩进格式便于查看)
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
?>注意事项与最佳实践:
此方案简洁、可读性强,兼顾健壮性与性能,可直接集成至数据清洗管道中。