Tôi sẽ tạo một mảng với tất cả các giá trị trong phạm vi [tối thiểu, tối đa], sau đó thực hiện giao nhau với tất cả các phạm vi hiện có:
$new_range = range($min, $max);
foreach ($current_ranges as $range) {
if (count(array_intersect($new_range, range($range["min"], $range["max"])))) {
throw new RangeException();
}
}
Điều này sẽ tạo ra một ngoại lệ trên phạm vi đã tồn tại đầu tiên trùng với phạm vi mới.