-1
겹치는 기간을 알려주십시오. 나는 배열을 가지고있다겹치는 기간 발견 PHP
["1-9","11-15","14-20","8-11"]
배열의 각 요소의 기간. 최소 1주기, 최대 10주기의 배열 겹치는 부분을 찾아야합니다.
나는 또 다른 질문에서이 사례를 찾을 수
겹치는 기간을 알려주십시오. 나는 배열을 가지고있다겹치는 기간 발견 PHP
["1-9","11-15","14-20","8-11"]
배열의 각 요소의 기간. 최소 1주기, 최대 10주기의 배열 겹치는 부분을 찾아야합니다.
나는 또 다른 질문에서이 사례를 찾을 수
이이 검사의 방법은 우리 만 고려한다면 (두 번째 범위의 가장 낮은 끝에 첫 번째 범위의 가장 높은 끝을 비교를 기반으로 간단한 코드 조각입니다 해당 범위가 유효합니다). (중복 두 날짜를 포함)
$ranges = ["1-9","11-15","14-20","8-11"];
$results = [];
sort($ranges, SORT_NUMERIC);
foreach ($ranges as $first) {
$firstNums = explode("-", $first);
foreach ($ranges as $second) {
if ($first == $second) continue;
$secondNums = explode("-", $second);
if ($firstNums[1] >= $secondNums[0] && $first != end($ranges)) {
$results[$first] = $second;
}
}
}
print_r($results);
결과 :
Array
(
[1-9] => 8-11
[8-11] => 11-15
[11-15] => 14-20
)
'> = '비교 연산자를 사용하여'>'로만 변경할 수 있습니다. – revo
https://stackoverflow.com/questions/325933/determine 그리고 첫 번째 장소에서, 정렬 범위는 중요한 역할을하고있다 -whether-two-date-ranges-overlap – techouse
당신이 요소를 이해하는 방법에 대한 질문입니다. – splash58
@Vladislav 겹치는 부분이 있는지 확인하거나 중복 된 항목을 찾으십니까? – splash58