PHP将两个数字数组合并为一个数组

时间:2013-07-02 04:30:11

标签: php arrays

我需要一个新的数组,将2个数组与计算相结合

$array1 = array(2,5,7,1);

$array2 = array(1,3,2,5);

结果数组应该输出

$array3 = array(3,8,9,6);

这可能在php中我知道array_merge函数结合了两个数组但是如何在计算后结合

注意:

这在C#中是可能的,但我想知道我能不能用它做到

2 个答案:

答案 0 :(得分:6)

如果保证它们的大小匹配,那么你可以使用类似的东西

$array3 = array();

for($x =0; $x<count($array1); $x++){
     $array3[] = $array1[$x] + $array2[$x];
}

如果不保证阵列大小相同,您可以执行以下操作

$array3 = array();
$max = max(count($array1), count($array2));
for($x =0; $x<$max; $x++){
     $array3[] = (isset($array1[$x])?$array1[$x]:0)) + (isset($array2[$x])?$array2[$x]:0));
}  

随着PHP 7的采用,null coalesce operator这个代码变得更具可读性:

$array3 = array();
$max = max(count($array1), count($array2));
for($x =0; $x<$max; $x++){
     $array3[] = ($array1[$x] ?? 0) + ($array2[$x] ?? 0);
}  

答案 1 :(得分:4)

为此,您必须使用foreach循环

<?php
$array1 = array(2,5,7,1);
$array2 = array(1,3,2,5);
$array3= array();


foreach($array1 as $key=>$value)
{
   $array3[$key] = $array1[$key]+$array2[$key];
}

print_r($array3)
?>