2016-04-22 95 views
-2

所以我有兩個數組,我想通過將相同的鍵一起添加到一個數組中。通過添加它們的值來合併兩個數組

array &a 
    Array 
    (
     [0] => 4 
     [1] => 10 
     [2] => 3 
     [3] => 10 
     [4] => 7 
    ) 
    array &b 
    Array 
    (
     [0] => 
     [1] => 1 
     [2] => 2 
     [3] => 2 
     [4] => 2 

    ) 

我期望所得到的數組作爲

Array 
    (
     [0] => 4 
     [1] => 11 
     [2] => 5 
     [3] => 12 
     [4] => 9 

    ) 
+0

會是怎樣的預期輸出?你在哪裏堅持做到這一點? – Rizier123

+0

@ Rizier123我已經更新了這個問題。 。 –

+0

@AndreiZhamoida並非真的 – RiggsFolly

回答

2

使用下面的代碼: -

$a = [4,10,3,10,7]; 
$b = ['',1,2,2,2]; 

$res = []; 
foreach($a as $k=>$v){ 
    $res[] = $v + $b[$k]; 
} 
echo '<pre>'; print_r($res); 

輸出: -

Array 
(
    [0] => 4 
    [1] => 11 
    [2] => 5 
    [3] => 12 
    [4] => 9 
) 

如果第二個數組$ b的記錄沒有類似的數字作爲第一個數組$ a然後,

$a = [4,10,3,10,7]; 
$b = ['',1,2,2]; // removed last record 

$res = []; 
foreach($a as $k=>$v){ 
    $res[] = $v + (!empty($b[$k]) ? $b[$k] : 0); 
} 
echo '<pre>'; print_r($res); 

輸出: -

Array 
(
    [0] => 4 
    [1] => 11 
    [2] => 5 
    [3] => 12 
    [4] => 7 
) 
+0

感謝隊友它完美的作品。 –

+0

不客氣:-) –

3

你可以通過在同一時間與array_map()兩個陣列迴路。然後您只需將兩個元素添加到一起並將其作爲新元素返回。

代碼

$result = array_map(function($v1, $v2){ 
    return $v1 + $v2; 
}, $a, $b); 
+0

新的數組值現在是0 –

+0

@HappyG對不起,我在回調中犯了一個錯字,並使用了錯誤的變量。更新了答案。 – Rizier123

+0

這項工作也。謝謝。 –

相關問題