我合并了两个数组(都从不同的mysql表中获取),现在我想将数组中相同值的所有元素求和。
$merged_arr = array_merge($reg, $rel);
Array
(
[0] => Array
(
[DEPARTMENT] => LEAFSPRINGDIRECT
[BASIC INCOME] => 3035.37
[OT PAY] => 0
)
[1] => Array
(
[DEPARTMENT] => MUFFLERDIRECT
[BASIC INCOME] => 24962.09
[OT PAY] => 5358.76
)
[2] => Array
(
[DEPARTMENT] => MUFFLERDIRECT
[BASIC INCOME] => 14082.080000000002
[OT PAY] => 3248.4
)
)
这是我尝试过的方法,但是我不得不一遍又一遍地使用if-else语句。
foreach($merged_arr as $key => $val)
{
// echo $val['BASIC INCOME']."<br>";
// echo array_keys(array_values($new_arr)[$key])[$count]."-".array_values(array_values($new_arr)[$key])[$count]."<br>";
if(array_values(array_values($new_arr)[$key])[$count] == "RADIATORDIRECT") {
$new_arr['BASIC INCOME'] += '...';
}
$count++;
}
我想要的数组应该是这样的:
Array
(
[0] => Array
(
[DEPARTMENT] => LEAFSPRINGDIRECT
[BASIC INCOME] => 3035.37
[OT PAY] => 0
)
[1] => Array
(
[DEPARTMENT] => MUFFLERDIRECT
[BASIC INCOME] => 39044.17
[OT PAY] => 8607.16
)
)
有什么更简单的方法吗?提前谢谢。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我会在SQL端这样做:
SELECT DEPARTMENT, SUM(`BASIC INCOME`) AS `BASIC INCOME`, SUM(`OT PAY`) AS `OT PAY` FROM ( SELECT DEPARTMENT, `BASIC INCOME`, `OT PAY` FROM `table_a` -- WHERE ... UNION ALL SELECT DEPARTMENT, `BASIC INCOME`, `OT PAY` FROM `table_b` -- WHERE ... ) UNIONS GROUP BY DEPARTMENT