我想通过连接它们的值来合并2个数组。现在我使用array_merge()
,但这并没有给我预期的结果。
代码:
$software1 = $_POST['software1'];
$software2 = $_POST['software2'];
$software3 = array_filter($software2);
$result = array_merge($software1, $software3);
foreach($result as $value){
echo $value . "<br>";
}
当前输出:
software
software
software
1
2
3
我想要的是什么:
software 1
software 2
software 3
答案 0 :(得分:1)
您希望在此处使用array_map()
并将两个数组中的相应值连接在一起,从而创建一个新数组,例如
$result = array_map(function(...$v){
return implode(" ", $v);
}, $software1, $software3 /* , more arrays */);
当然,如果您只想输出它,可以在echo
内使用array_map()
。如果您想要通过串联合并未知数量的数组,则可以使用call_user_func_array()
进行合并,例如
$result = call_user_func_array("array_map", [function(...$v){return implode(" ", $v);}, $arrays]);
答案 1 :(得分:1)
另一种方法:如果$software2
是唯一值,则可以使用array_combine
:
foreach (array_combine($_POST['software2'], $_POST['software1']) as $key => $val) {
echo $val , ' ', $key;
}
答案 2 :(得分:0)
有几种方法。这是两个:
foreach($software1 as $key => $value){
echo "$value {$software2[$key]}<br>";
}
或者,如果保证其中一个或另一个是唯一的,请将其用作密钥:
foreach(array_combine($software1, $software2) as $key => $value){
echo "$key $value<br>";
}