我有数组:
$arr1 = array(5, 3, 9, 11, 6, 15);
$arr2 = array(11, 20, 1, 3, 8);
现在我需要循环遍历$arr1
并找到小于的最大数X
:
foreach($arr1 as $x) {
//need element that is MAX in $arr2 but is less than $x
}
例如第一次运行时$x = 5
,最大在$arr2
is 3小于5.
是否可以在没有嵌套循环的情况下做到这一点?我不想循环$arr2
。我尝试使用array_filter
但并没有真正起作用。也许我用错了。
这是我尝试过的array_filter
:
$results = array();
foreach($arr1 as $x) {
$max = max(array_filter($arr2, function ($x) { return $x < $y; }));
$results[$x] = $max;
}
结果应该是这样的:
5 => 3,
3 => 1,
9 => 8,
11 => 8,
6 => 3,
15 => 11