我有两个数组,例如:
$array1 = array(3,4,3,1);
$array2 = array(2,5,3,0);
现在应该比较2个数组中的每个键,并且每个键的值值越小,我想创建一个新数组。在这种情况下,新数组应为:
$result = array(2,4,3,0)
我该怎么做?
答案 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是否是最优雅的解决方案,但结果似乎是您正在寻找的。 p>
$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
)