如何通过连接值来合并数组?

时间:2016-04-06 20:05:01

标签: php arrays

我想通过连接它们的值来合并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

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