다차원 연관배열에서 키(key)로 해당 키에 해당하는 값(value)과 상위키(key)를 구하는 방법

· 조회수 14

아래와 같은 배열이름이 $regionData인 다차원 연관배열이 있을때 키에 해당하는 키에 해당하는 '100'으로 값에 해당하는  '중구'와 상위키에 해당하는 '서울특별시'를 찾는 방법입니다.

$regionData = [
    "서울특별시" => [
        "100"  => "중구",
        "110"  => "종로구",
        "120"  => "서대문구",
        "121"  => "마포구",
        "122"  => "은평구",
        "130"  => "동대문구",
        "131"  => "중랑구",
        "132"  => "도봉구",
        "134"  => "강동구",
        "135"  => "강남구",
        "136"  => "성북구",
        "137"  => "서초구",
        "138"  => "송파구",
        "139"  => "노원구",
        "140"  => "용산구",
        "143"  => "광진구",
        "143c" => "광진구",
        "150"  => "영등포구",
        "151"  => "관악구",
        "154"  => "구로구",
        "156"  => "동작구",
        "157"  => "강서구",
        "158"  => "양천구",
    ],
    "강원특별자치도" => [
        "200"  => "춘천시",
        "209"  => "화천군",
        "210"  => "강릉시",
        "215"  => "양양군",
        "217"  => "속초시",
        "220"  => "원주시",
        "220c" => "원주시",
        "225"  => "횡성군",
        "230"  => "영월군",
        "232"  => "평창군",
        "233"  => "정선군",
        "235"  => "태백시",
        "240"  => "동해시",
        "245"  => "삼척시",
        "250"  => "홍천군",
        "252"  => "인제군",
        "255"  => "양구군",
        "269"  => "철원군",
    ]
]


아래는 키로 값을 찾고 상위키를 찾는 함수입니다.

function getRegionInfoByCode($code, $regionData) {
    foreach ($regionData as $regionName => $areas) {
        if (array_key_exists($code, $areas)) {
            return [
                "region" => $regionName,
                "area"   => $areas[$code]
            ];
        }
    }
    return null;
}

사용법은 아래와 같습니다.

$code = "100";//중구
$result = getRegionInfoByCode($code, $regionData);
echo "키인 {$code}의 값과 상위키는 각각 {$result['area']}와 {$result['region']}";
//출력결과 : 키인 100의 값과 상위키는 각각 중구와 서울특별시

"인생은 선을 실행하기 위하여 만들어졌다. - 칸트"

- 인생 -

북마크목록