2013-10-09 99 views
0
foreach (array_keys($R + $A) as $arrKey) { 
$sums[$arrKey] = (isset($R[$arrKey]) ? $R[$arrKey] : 0) + (isset($A[$arrKey]) ? $A[$arrKey] : 0);} 

上述工作。數組不需要有相同數量的密鑰,並且它可以正確添加。減去陣列vs添加陣列

foreach (array_keys($B - $C) as $arrKey) { 
$sums[$arrKey] = (isset($B[$arrKey]) ? $B[$arrKey] : 0) - (isset($C[$arrKey]) ? $C[$arrKey] : 0);} 
foreach (array_keys($B + $C) as $arrKey) { 
$sums[$arrKey] = (isset($B[$arrKey]) ? $B[$arrKey] : 0) - (isset($C[$arrKey]) ? $C[$arrKey] : 0);} 

以上兩種都不起作用。他們打印出致命錯誤:不支持的操作數類型(並且它們都指向每個行的第一行(帶有「foreach」的行)。當我想添加事物時,它們可能有或沒有相同的數字。減去兩個數組有相同數目的

所以,我的問題是:??爲什麼用另外的工作,而不是減法和一個會怎麼然後減去

+0

+正在「合併」數組而不是「添加」它們:ar ray_diff()可能會給你一個等價的,這取決於你實際上期待的是什麼 –

回答

0
+0

但是這不會減去數組,是不是?如果一個數組包含值10,15,20,並且我想從中減去5,10,15,則結果數組應包含5,5,5。使用array_diff,生成的數組應包含20,因爲10和15是在這兩個陣列,這不是我想要做的... –

+0

@WitoldKowelski哦,我不知道你的問題,那就是你想要做的。 '+'不會添加數組的每個元素。聽起來像你只是想使用循環。 –