PHP中如何对数组内相同部门的对应数值进行求和
同部门薪资求和的简便实现方法
可以通过以部门名称为键分组累加的方式实现,无需繁琐的if-else嵌套,代码简洁高效:
// 初始化临时数组用于分组统计 $summedData = []; foreach ($merged_arr as $item) { // 去除部门名称前后空格,避免因空格导致分组错误 $department = trim($item['DEPARTMENT']); // 若该部门未被初始化,则创建初始统计项 if (!isset($summedData[$department])) { $summedData[$department] = [ 'DEPARTMENT' => $department, 'BASIC INCOME' => 0, 'OT PAY' => 0 ]; } // 累加对应薪资项 $summedData[$department]['BASIC INCOME'] += $item['BASIC INCOME']; $summedData[$department]['OT PAY'] += $item['OT PAY']; } // 将关联数组转为索引数组,匹配目标格式 $result = array_values($summedData);
补充说明
- 空格处理:原数组中第三个项的
MUFFLERDIRECT带有尾部空格,用trim()可以避免因字符串不一致导致的重复分组。 - 小数精度:如果需要保证结果保留两位小数(和你期望的输出一致),可以在累加时用
round()处理:
$summedData[$department]['BASIC INCOME'] = round( $summedData[$department]['BASIC INCOME'] + $item['BASIC INCOME'], 2 ); $summedData[$department]['OT PAY'] = round( $summedData[$department]['OT PAY'] + $item['OT PAY'], 2 );
执行上述代码后,$result就是你想要的合并求和后的数组。
内容的提问来源于stack exchange,提问作者user22249320
相关产品推荐
相关产品推荐

