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

PHP中如何合并同一时间的设备信息数组并汇总总数?

解决方案:PHP数组按时间分组聚合设备信息

当然可以实现这个需求!这是开发中很常见的数组分组聚合场景,我给你写个直观的代码示例,带你一步步完成:

1. 原始数组定义

首先我们先把你给出的原始数组整理成标准的PHP格式:

$deviceInfo = [
    ['time' => '2018-03-28 03:00 PM', 'deviceName' => 'Samsung', 'total' => 1],
    ['time' => '2018-03-28 03:00 PM', 'deviceName' => 'Sony', 'total' => 1],
    ['time' => '2018-03-28 03:00 PM', 'deviceName' => 'Apple', 'total' => 1],
    ['time' => '2018-03-29 03:00 PM', 'deviceName' => 'Samsung', 'total' => 1]
];

2. 分组聚合逻辑

核心思路是用时间作为唯一标识分组,遍历数组时收集同一时间的设备名并累加总数:

// 初始化分组数组,用时间作为键
$groupedData = [];

foreach ($deviceInfo as $item) {
    $currentTime = $item['time'];
    
    // 如果当前时间还未创建分组,先初始化结构
    if (!isset($groupedData[$currentTime])) {
        $groupedData[$currentTime] = [
            'time' => $currentTime,
            'deviceName' => [],
            'total' => 0
        ];
    }
    
    // 将当前设备名加入分组的设备数组
    $groupedData[$currentTime]['deviceName'][] = $item['deviceName'];
    // 累加当前条目的总数
    $groupedData[$currentTime]['total'] += $item['total'];
}

// 将关联数组转为索引数组(和你想要的输出结构一致)
$result = array_values($groupedData);

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

3. 输出结果

运行上面的代码后,$result的结构就是你想要的:

Array
(
    [0] => Array
        (
            [time] => 2018-03-28 03:00 PM
            [deviceName] => Array
                (
                    [0] => Samsung
                    [1] => Sony
                    [2] => Apple
                )
            [total] => 3
        )
    [1] => Array
        (
            [time] => 2018-03-29 03:00 PM
            [deviceName] => Array
                (
                    [0] => Samsung
                )
            [total] => 1
        )
)

可选优化:设备名去重

如果你的原始数据中可能出现同一时间同一设备多次出现的情况,可以给deviceName数组去重,比如:

// 在遍历结束后,对每个分组的设备数组去重
foreach ($groupedData as &$group) {
    $group['deviceName'] = array_unique($group['deviceName']);
    // 如果需要同步调整total为去重后的设备数量,可以改成:
    // $group['total'] = count($group['deviceName']);
}
unset($group); // 释放引用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:35:38