2012-07-31 95 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); 

?>