Php 同一个键下有两个数组
我需要通过将Array2追加到Array1,在同一个键下组合两个数组: 所以Array3看起来像这样: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
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的数组映射是一个更优雅的解决方案;工作起来很有魅力。由于阵列图,我已经接受了你的,谢谢!没问题。如果您可以使用内置数组函数完成相同的任务,那么避免循环从来都不是坏事!谢谢你的快速回答!