同一个键下的两个数组组合

时间:2012-01-29 21:07:09

标签: php arrays key

我需要将 Array2 附加到 Array1 ,在同一个键下合并2个数组:

Array1
(
    [0] => value1
    [1] => value2
    [2] => value3
    [3] => value4
    [4] => value5
    [5] => value6
    [6] => value7
)
Array2
(
    [0] => add1
    [1] => add2
    [2] => add3
    [3] => add4
    [4] => add5
    [5] => add6
    [6] => add7
)

以便 Array3 如下所示:

Array1
(
    [0] => value1add1
    [1] => value2add2
    [2] => value3add3
    [3] => value4add4
    [4] => value5add5
    [5] => value6add6
    [6] => value7add7
)

我通过php.net搜索但我找不到任何东西。任何帮助将非常感激!提前感谢您的意见。

3 个答案:

答案 0 :(得分:4)

在这种情况下,

array_mapdocs使循环变得多余:

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

如果您没有PHP5.3 +(或者您不喜欢lambda),则需要在单独的函数中定义闭包,并在array_map调用中引用该函数的名称。< / p>

答案 1 :(得分:2)

做一个循环:

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];
}

(确切的实施应取决于您的输入值)

答案 2 :(得分:1)

这样的事情:

foreach($array1 as $k=> $value){
    $array3[$k] =  $value . $array2[$k];
}
print_r($array3);

请注意,它只会占用$array1所包含的项目。如果$array2较大,则会忽略其他值。