多维数组求和:统计各Campaign的累计安装总量
按Campaign统计累计安装总量的解决方案
没问题,我来帮你搞定这个需求!我们的核心目标就是把每个Campaign对应的所有installs数值累加起来,不管时间和小时维度,只看Campaign ID来汇总。
实现思路
- 初始化一个空数组,用来存储每个Campaign的累计安装量,数组的键就是Campaign ID,值是对应的累计数
- 逐层遍历你提供的多维数组,取出每个数据条目中的
campaign和installs字段 - 对每个Campaign ID进行判断:如果结果数组里还没有这个ID,就先把它的初始值设为0;然后把当前条目的安装量累加到这个ID对应的值上
- 遍历完成后,结果数组里就会包含所有Campaign的累计安装总量
PHP代码示例
// 假设你的原始多维数组为 $rawData $campaignTotalInstalls = []; // 遍历外层数组的每个子数组 foreach ($rawData as $subArray) { // 遍历子数组中的每个数据条目 foreach ($subArray as $entry) { $campaignId = $entry['campaign']; $currentInstalls = $entry['installs']; // 初始化该Campaign的累计值(如果尚未存在) if (!isset($campaignTotalInstalls[$campaignId])) { $campaignTotalInstalls[$campaignId] = 0; } // 累加安装量 $campaignTotalInstalls[$campaignId] += $currentInstalls; } } // 输出结果,查看每个Campaign的累计安装量 print_r($campaignTotalInstalls);
代码说明
$campaignTotalInstalls是最终存储结果的数组,键为Campaign ID,值为累计安装数- 外层循环处理原始数组中的每个外层元素(比如你示例里的
[27]对应的子数组) - 内层循环处理每个子数组里的具体数据条目,提取关键的
campaign和installs字段 - 通过
isset()判断避免未初始化的键报错,确保每个Campaign第一次出现时都有初始值 - 最后用
print_r()可以直观看到汇总后的结果,比如你提供的示例数据运行后会得到Array ( [27] => 2 [39] => 2 )
内容的提问来源于stack exchange,提问作者Jack Ellis
相关产品推荐
相关产品推荐

