我想按條件合併數組。如果數組鍵匹配,則添加值,否則保留該值。如何合併兩個數組並總結重複鍵的值?
這裏是我的數組:
Array1
(
[1] => 199
[3] => 1306
[5] => 199
)
Array2
(
[3] => 199
[4] => 199
)
我期望的結果是:
Result
(
[1] => 199
[3] => 1505
[4] => 199
[5] => 199
)
我用的if-else條件,但它的重複這已經是匹配的值。
這裏是我的編碼嘗試:
$all=array();
foreach($sall as $sskey => $ssvalue){
foreach($upgradesall as $uukey => $uuvalue){
//$sskey==$uukey?$all[] = array("id"=>$sskey, "amount"=>$ssvalue+$uuvalue):($sskey!=$uukey? $all[] = array("id"=>$sskey, "amount"=>$ssvalue):($uukey!=$sskey?$all[] = array("id"=>$uukey, "amount"=>$uuvalue):''));
if($sskey===$uukey){
$all[] = array("id"=>$sskey, "amount"=>$ssvalue+$uuvalue);
}elseif($sskey!=$uukey){
$all[] = array("id"=>$sskey, "amount"=>$ssvalue);
}elseif($uukey!=$sskey){
$all[] = array("id"=>$uukey, "amount"=>$uuvalue);
}
}
}
提供您想要的輸出。 –
@SAHAR Don'tPanic的方法是您應該使用的最直接,最高效,最精煉的方法。它使用較少的函數調用並避免生成臨時多維數組。 – mickmackusa