本文介绍如何在 php 中基于 `devicemacaddress` 对多维数组去重,并在重复项存在时,优先保留各字段中**最新出现的非空值**(而非简单覆盖整条记录),实现更合理的数据聚合。
在物联网或传感器数据处理场景中,常会收到同一

理想的策略是:以 deviceMacAddress 为分组键,遍历原始数组,对每个字段执行“空则跳过,非空则更新”逻辑。这样既能保证每台设备只保留一条记录,又能最大程度继承各次上报中的有效字段值。
以下是一个简洁、健壮的实现方案:
$value) {
if ($value !== '' && $value !== null && $value !== false) {
$merged[$mac][$key] = $value;
}
}
}
// 可选:重置数组键为连续数字索引(去除 mac 地址作为键)
$finalArray = array_values($merged);
?>✅ 关键设计说明:
⚠️ 注意事项:
该方法兼顾性能与语义合理性,无需额外排序或多次遍历,适用于中等规模数据集(万级以内),是 PHP 数组聚合任务中的实用范式。