【发布时间】:2019-07-25 09:13:17
【问题描述】:
我有 2 个数组。像这样的。
$res1 = [
['ID' => 60,'TOTAL' => 500],
['ID' => 61,'TOTAL' => 600],
['ID' => 63,'TOTAL' => 500]
];
$res2 = [
['ID' => 60,'TOTAL' => 600],
['ID' => 61,'TOTAL' => 700],
['ID' => 64,'TOTAL' => 800]
];
我想将 $res1 和 $res2 数组与 ID 合并,如果 ID 相等,则将总数相加,否则如果 ID 不匹配,那么我也应该将其保留在数组中。
这是我尝试过的,需要帮助以进一步提高性能。
foreach ($res1 as $id1 => $val1) {
foreach ($res2 as $id2 => $val2) {
$r =array();
if ($val1['ID'] == $val2['ID']) {
$r['ID'] = $val1['ID'];
$r['TOTAL'] = $val1['TOTAL'] + $val2['TOTAL'];
}else{
// MISSING Something here
}
$result[] = $r;
}
}
预期的结果应该是
$result = [
['ID' => 60,'TOTAL' => 1100],
['ID' => 61,'TOTAL' => 1300],
['ID' => 63,'TOTAL' => 500],
['ID' => 64,'TOTAL' => 800]
];
【问题讨论】:
-
使用这些数组效率不是很高。你是怎么把它们弄成这样的?更好的数组是:
$totals1 = [60 => 500, 61 => 600, 63 => 500];和$totals2 = [60 => 600, 61 => 700, 64 => 800];。 -
@KIKOSoftware 我无法更改数组表示。可能需要现有解决方案
标签: php