我有多个数组,在for循环完成时生成。现在我需要得到总所有这些阵列在一起,但为了,例如:PHP Array Combine和Sum
array1(2, 4, 6, 8, 10)
array2(2, 4, 6, 8, 10)
我需要添加2的一起,4个的等等等等
然后把它们放进另一个数组。
array_combine
和array_sum
的组合似乎是解决方案,但我无法弄清楚。
任何帮助,非常感谢。
我有多个数组,在for循环完成时生成。现在我需要得到总所有这些阵列在一起,但为了,例如:PHP Array Combine和Sum
array1(2, 4, 6, 8, 10)
array2(2, 4, 6, 8, 10)
我需要添加2的一起,4个的等等等等
然后把它们放进另一个数组。
array_combine
和array_sum
的组合似乎是解决方案,但我无法弄清楚。
任何帮助,非常感谢。
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;
}
你应该使用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
)
你可以做这样的事情
$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);
据我理解你的问题你要的这两个阵列中的所有类似的数字之和:
<?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);
?>
什么ü尝试? – diEcho 2012-07-31 04:39:57