0

我有多个数组,它们在 for 循环完成时生成。现在我需要将所有这些数组的总数放在一起,但要按顺序排列,例如:

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

我需要将 2 加在一起,4 等等等等

然后将它们放入另一个数组中。

array_combine和的某种组合array_sum似乎是解决方案,但我无法弄清楚。

任何帮助是极大的赞赏。

4

5 回答 5

0

第一种

$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; 
}
于 2012-07-31T04:42:41.090 回答
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
)
于 2012-07-31T04:44:54.113 回答
0

你可以在没有任何php函数的情况下做到这一点,除了count,

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

应该管用。这将组合您的两个数组并以相同的顺序添加它们。但是,如果您不确定它们的顺序是否相同,请确保您之前在两个数组上都使用了sortksort 。

于 2012-07-31T04:57:35.087 回答
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);
于 2012-07-31T04:58:41.340 回答
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);

?>
于 2012-07-31T05:09:27.377 回答