2015-05-21 33 views
2

例如如何添加數組中的鍵和值?

$array1 = array(item1=>5,item2=>7); 
$array2 = array(item1=>5,item3=>7); 

其實我想先檢查陣列中,如果相同的密鑰存在意味着值應(算術)加入否則 如果不存在,那麼它直接推到陣列。

我的輸出將類似

$nov-2014 =array(item1=>10,item2=>7,item3=>7) 
+0

只是一個說明,這裏的每個答案都假定所有的值都是數字。記住這一點。 – Kishor

回答

-2

嘗試array_merge。對於關聯數組,這將保持相同的鍵

+0

5次存在2次時不添加數值。 – Kishor

3

你可以明白地使用一個簡單的和爲此foreach。當然,創建最終的容器。初始化值,然後就不斷增加直通鍵:

$array1 = array('item1'=>5,'item2'=>7); 
$array2 = array('item1'=>5,'item3'=>7); 

$result = array(); 
for($x = 1; $x <= 2; $x++) { 
    foreach(${"array$x"} as $key => $values) { 
     if(!isset($result[$key])) $result[$key] = 0; // initialize 
     $result[$key] += $values; // add 
    } 
} 

print_r($result); 

Sample Output

+1

請解釋使用'$ {「array $ x」}' –

+1

@ jQuery.PHP.Magento.com其實它是一個簡單的[變量變量](http://php.net/manual/en/language.variables.variable .php)的概念,它基本上迭代了數組'$ array1'和'$ array2',哦,我希望這些數組不是分開的,它可能會容易得多,但無論如何,我只需要處理OP在那裏 – Ghost

3

試試這個:

$array1 = array(
    'item1' => 5, 
    'item2' => 7 
); 
$array2 = array(
    'item1' => 5, 
    'item3' => 7 
); 
$array_new = $array2; 
foreach ($array1 as $key => $value) { 
    if (!in_array($key, $array2)) { 
     $array_new[$key] = $value + $array2[$key]; 
    } 
} 
2

我覺得這是沒有內置的PHP函數,使用foreach

$array1 = array('item1' => 5, 'item2' => 7); 
$array2 = array('item1' => 5, 'item3' => 7); 
$result = $array1; 

foreach ($array2 as $key => $val) { 
    if (isset($result[$key])) { 
     $result[$key] += $val; 
    } else { 
     $result[$key] = $val; 
    } 
} 

/* 
    Output: 
    Array 
    (
     [item1] => 10 
     [item2] => 7 
     [item3] => 7 
    ) 
*/