Php 同一个键下有两个数组

Php 同一个键下有两个数组,php,arrays,key,Php,Arrays,Key,我需要通过将Array2追加到Array1,在同一个键下组合两个数组: 所以Array3看起来像这样: Array1 ( [0] => value1add1 [1] => value2add2 [2] => value3add3 [3] => value4add4 [4] => value5add5 [5] => value6add6 [6] => value7add7 ) foreach($ar

我需要通过将Array2追加到Array1,在同一个键下组合两个数组:

所以Array3看起来像这样:

Array1
(
    [0] => value1add1
    [1] => value2add2
    [2] => value3add3
    [3] => value4add4
    [4] => value5add5
    [5] => value6add6
    [6] => value7add7
)
foreach($array1 as $k=> $value){
    $array3[$k] =  $value . $array2[$k];
}
print_r($array3);
我搜索了php.net,但什么也没找到。任何帮助都将不胜感激!提前感谢您的意见。

诸如此类:

Array1
(
    [0] => value1add1
    [1] => value2add2
    [2] => value3add3
    [3] => value4add4
    [4] => value5add5
    [5] => value6add6
    [6] => value7add7
)
foreach($array1 as $k=> $value){
    $array3[$k] =  $value . $array2[$k];
}
print_r($array3);
请注意,它只接受$array1包含的项目数。如果$array2较大,其他值将被忽略。

只需执行循环:

if (count($arr1) == count($arr2))
{
  $arr3 = array();
  foreach ($arr1 as $key => $val)
    $arr3 = $val . $arr2[$key];
}
else
{
  echo "Arrays should be of same size!";
  $arr3 = array();
  for ($i = 0, $i < min(count($arr1),count($arr2)); $i++)
    $arr3 = $arr1[$i] . $arr2[$i];
}
确切的实现应该取决于您的输入值

在这种情况下,循环是多余的:

$arr1 = array('value1','value2','value3');
$arr2 = array('add1','add2','add3');
$merged = array_map(function($x, $y) { return $x . $y; }, $arr1, $arr2);

如果您没有PHP5.3+或不喜欢lambda,则需要在单独的函数中定义闭包,并在数组映射调用中引用该函数的名称。

首先感谢您和konsolenfreddy提供了非常快速的答案。这两个示例看起来都非常有效,但需要添加[]$arr3[]=$val$arr2[$key];我会接受rdlowrey的答案,因为它在我的情况下工作得更好。我的阵列大小相同,但你的阵列有一个完整的if循环,这可能会在将来帮助其他阵列。我投票支持你们三个。谢谢大家!@triump,rdlowrey的数组映射是一个更优雅的解决方案;工作起来很有魅力。由于阵列图,我已经接受了你的,谢谢!没问题。如果您可以使用内置数组函数完成相同的任务,那么避免循环从来都不是坏事!谢谢你的快速回答!