当前位置:Gxlcms > PHP教程 > 请教怎么有效判断几组数据范围是否有交集

请教怎么有效判断几组数据范围是否有交集

时间:2021-07-01 10:21:17 帮助过:4人阅读

请问如何有效判断几组数据范围是否有交集
5000~7000
2000~6000
8000~9000
4000~8500
5000~7000
请问php中这几组随机的数据怎么样更有效的判断是否有重复?

期望值是
2000~4000
4000~5000
5000~6000
6000~7000
7000~8500
8500~9000

php

分享到:


------解决方案--------------------
只需要判别是否包含,可以写成函数
还是沿袭开始的思路
$a = array(
array(5000, 7000),
array(2000, 6000),
array(8000, 9000),
array(4000, 8500),
array(5000, 7000),
);
var_dump(foo($a)); //bool(false)

$a = array(
array(5000, 7000),
array(6000, 8200),
array(8000, 9000)
);
var_dump(foo($a)); //bool(false)

$a = array(
array(5000, 5500),
array(6000, 6500),
array(8000, 8500)
);
var_dump(foo($a)); //bool(true)

function foo($a) {
$r = array_unique(call_user_func_array('array_merge', $a));
sort($r);

foreach($a as $v) {
if(array_search($v[0], $r) != array_search($v[1], $r) - 1) return false;
}
return true;
}

人气教程排行