2012-07-31 102 views
0

我有多個數組,在for循環完成時生成。現在我需要得到總所有這些陣列在一起,但爲了,例如:PHP Array Combine和Sum

array1(2, 4, 6, 8, 10) 
array2(2, 4, 6, 8, 10) 

我需要添加2的一起,4個的等等等等

然後把它們放進另一個數組。

array_combinearray_sum的組合似乎是解決方案,但我無法弄清楚。

任何幫助,非常感謝。

+2

什麼ü嘗試? – diEcho 2012-07-31 04:39:57

回答

0

你能做到這一點,除了沒有任何計數的PHP函數,

$limit = count($array1); 
for ($i = 0; $i < $limit; $i++) { 
    $array_res[$i] = $array1[$i] + $array2[$i]; 

應該可以工作。這將組合你的兩個數組並按照相同的順序添加它們。但是如果你不確定它們是否在相同的順序中,請確保你之前在兩個陣列上都使用了sortksort

0

1 stlye

$a1 = array(
    "a" => 2 
    ,"b" => 0 
    ,"c" => 5 
); 

$a2 = array(
    "a" => 3 
    ,"b" => 9 
    ,"c" => 7 
    ,"d" => 10 
); 

$a3 = array_merge($a1, $a2); 
print_r($a3); 

第二風格

$a3 = $a1; 

foreach($a2 as $k=>$v) { 
    if(array_key_exists($k,$a3)) 
     $a3[$k] + = $v; 
    else 
     $a3[$k] = $v; 
} 
0

你應該使用array_map()

$arr1 = array(2, 4, 6, 8, 10); 
$arr2 = array(1, 2, 3, 4, 5); 

$arr3 = array_map(
    function($foo, $bar){ 
     return $foo+$bar; 
    }, 
    $arr1, $arr2 
); 

print_r($arr3); // outputs: 

Array 
(
    [0] => 3 
    [1] => 6 
    [2] => 9 
    [3] => 12 
    [4] => 15 
) 
0

你可以做這樣的事情

$a = array(2, 4, 6, 8, 10); 
$b = array(2, 4, 6, 8, 10); 
$c = array_map("test", $a, $b); 

function test($a, $b) { 
return $a + $b; 
} 

print_r($c); 
0

據我理解你的問題你要的這兩個陣列中的所有類似的數字之和:

<?php 

$array1= array(2, 4, 6, 8, 10); 
$array2=array(2, 4, 6, 8, 10); 
$array_sum=array(); 

foreach($array1 as $key1=>$val1) 
{ 
    $sum=0; 

    foreach($array2 as $key2 => $val2) 
    { 
     if($val1==$val2) 
     { 
      $sum=$sum+$val1; 
     } 
    } 
    $array_sum[]=$sum; 
} 

print_r($array_sum); 

?>