국토교통부(TAGO) 지하철정보에서 지하철역ID 패턴으로 노선명 추출하기 개선판

앞서 포스팅한 국토교통부(TAGO) 지하철정보에서 지하철역ID 패턴으로 노선명 추출하기(바로가기)의 개선판입니다.
개선사항 : 4자리 매칭 우선,대소문자 통일
 


<?php
function getSubwayLine($subwayStationId) {
    // 대소문자 통일
    $subwayStationId = strtoupper($subwayStationId);

    // 3자리 패턴
    $arr1 = [
        "ARA"=>"공항선","BGB"=>"부산김해경전철","BS1"=>"부산지하철1호선","BS2"=>"부산지하철2호선",
        "BS3"=>"부산지하철3호선","BS4"=>"부산지하철4호선","DG1"=>"대구지하철1호선","DG2"=>"대구지하철2호선",
        "DG3"=>"대구지하철3호선","DJ1"=>"대전지하철1호선","DXD"=>"신분당선","EVE"=>"에버라인",
        "GJ1"=>"광주지하철1호선","GMG"=>"김포골드라인","SRA"=>"GTX-A","GXA"=>"GTX-A",
        "IAM"=>"자기부상","IC7"=>"서울지하철7호선",
        "KR1"=>"수도권전철1호선","KR3"=>"수도권전철3호선","KR4"=>"수도권전철4호선","NU4"=>"수도권전철4호선",
        "S11"=>"수도권전철1호선","S12"=>"수도권전철2호선","S13"=>"수도권전철3호선","S14"=>"수도권전철4호선",
        "S15"=>"수도권전철5호선","S16"=>"수도권전철6호선","S17"=>"수도권전철7호선","S18"=>"수도권전철8호선",
        "S99"=>"수도권전철9호선","SLL"=>"신림선","SWW"=>"서해선","UIU"=>"우이신설","ULU"=>"의정부선"
    ];

    // 4자리 패턴
    $arr2 = [
        "KRK1"=>"수인분당선","KRK2"=>"경춘선","KRK4"=>"경의중앙선",
        "KRK5"=>"경강선","KRK6"=>"동해선","KRK7"=>"대경선",
        "ICI1"=>"인천지하철1호선","ICI2"=>"인천지하철2호선"
    ];

    // 먼저 4자리 패턴 매칭
    $key4 = substr($subwayStationId, 3, 4);
    if(isset($arr2[$key4])) {
        return $arr2[$key4];
    }

    // 3자리 패턴 매칭
    $key3 = substr($subwayStationId, 3, 3);
    if(isset($arr1[$key3])) {
        return $arr1[$key3];
    }

    // 못찾으면 "알 수 없음"
    return "알 수 없음";
}

// 사용 예시
echo getSubwayLine('MTRARA1A01'); // 공항선
echo getSubwayLine('MTRICI1123'); // 인천지하철1호선
echo getSubwayLine('MTRKRK4K331'); // 경의중앙선
echo getSubwayLine('MTRBS1121'); // 부산지하철1호선
?>

"나는 별로 주의를 끌지 않는 사물에 주목하고 그것을 주의깊게 관찰하는 데 보통 사람들보다 좀 나았다고 생각한다. - 다윈"

- 관찰, 성공 -

북마크목록