首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

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

2013-10-11 
请问如何有效判断几组数据范围是否有交集5000~70002000~60008000~90004000~85005000~7000请问php中这几组

请问如何有效判断几组数据范围是否有交集
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;
}

热点排行