PHP:比较2个数组并创建新数组

时间:2014-05-27 18:33:04

标签: php arrays

我有两个数组,例如:

$array1 = array(3,4,3,1);

$array2 = array(2,5,3,0);

现在应该比较2个数组中的每个键,并且每个键的值值越小,我想创建一个新数组。在这种情况下,新数组应为:

$result = array(2,4,3,0)   

我该怎么做?

4 个答案:

答案 0 :(得分:2)

您可以像这样使用array_map

$array1 = array(3,4,3,1);    
$array2 = array(2,5,3,0);

$result = array_map(min, $array1, $array2);
print_r($result);

array_map将一个函数(在本例中为min)应用于数组的每个元素并返回结果数组。如果将多个数组传递给array_map,则每个数组中的相应元素将用作函数的参数。

输出:

Array ( [0] => 2 [1] => 4 [2] => 3 [3] => 0 )

答案 1 :(得分:2)

array_map是你的朋友:

$array1 = array(3,4,3,1);
$array2 = array(2,5,3,0);

$array3 = array_map(min,$array1,$array2);

print_r($array3);

给出:

Array
(
    [0] => 2
    [1] => 4
    [2] => 3
    [3] => 0
)

答案 2 :(得分:0)

您可以将其用作概念

$array3 = array(); 
for($a = 0; a < count($array1); $a++)
{
    if($array1[$a]<$array2[$a])
        $array3[$a]=$array1[$a];
    else
        $array3[$a]=$array2[$a];
}

答案 3 :(得分:0)

不知道array_push是否是最优雅的解决方案,但结果似乎是您正在寻找的。

$array1 = array(3,4,3,1);
$array2 = array(2,5,3,0);
$result = array();
$len = count($array1);

for($i = 0; $i < $len; $i++) {
    $array1[$i] < $array2[$i] ? array_push($result, $array1[$i]) : array_push($result,            $array2[$i]);
}
print_r($result);

结果:

Array
(
    [0] => 2
    [1] => 4
    [2] => 3
    [3] => 0
)
相关问题