Menu
Coddy logo textTech

연관 배열 키 기준 정렬

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨 — 68개 중 23번째.

값으로 정렬하는 것도 유용하지만, 때로는 연관 배열을 키를 기준으로 정리해야 할 때가 있습니다. PHP는 오름차순 키 정렬을 위한 ksort()와 내림차순 키 정렬을 위한 krsort()를 제공하며, 두 함수 모두 중요한 키-값 관계를 유지합니다.

다음은 ksort()가 배열을 키를 기준으로 알파벳순으로 정렬하는 방법입니다:

<?php
$settings = [
    "theme" => "dark",
    "language" => "english", 
    "notifications" => "enabled",
    "auto_save" => "on"
];

ksort($settings);
print_r($settings);
// 출력: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>

이제 키가 A부터 Z까지 알파벳 순서로 정렬되어 있으며, 각 설정 이름이 해당 값과 올바르게 쌍을 이루고 있는 것을 확인해 보세요. 이는 구성 옵션이나 메뉴 항목을 예측 가능하고 체계적인 방식으로 표시하려는 경우 특히 유용합니다.

알파벳 역순의 경우, krsort()는 비슷하게 작동하지만 키를 Z에서 A 순으로 정렬합니다. 다른 PHP 정렬 함수와 마찬가지로 두 함수 모두 원래 배열을 직접 수정하므로, 값의 순서보다 키의 순서가 더 중요한 데이터를 정리하는 데 효율적입니다.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

challenge icon

챌린지

쉬움

하나의 입력을 받게 됩니다: JSON 형식의 부서 이름과 예산 할당액이 포함된 연관 배열입니다. 입력을 읽고, JSON 문자열을 배열로 변환한 다음, ksort()를 사용하여 부서를 키 기준 오름차순으로 알파벳순 정렬하고, print_r()을 사용하여 정렬된 배열을 출력하세요.

입력 형식: 부서 이름을 키로, 예산 금액을 값으로 하는 JSON 객체가 포함된 한 줄 (예: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})

예상 출력: 부서 이름(키)을 기준으로 알파벳 오름차순으로 정렬된 연관 배열이며, print_r()을 사용하여 표시됩니다.

치트 시트

PHP는 키-값 관계를 유지하면서 연관 배열을 키를 기준으로 정렬하기 위해 ksort()krsort() 함수를 제공합니다.

ksort()는 키를 알파벳 오름차순(A에서 Z)으로 정렬합니다:

ksort($array);

krsort()는 키를 알파벳 내림차순(Z에서 A)으로 정렬합니다:

krsort($array);

두 함수 모두 원본 배열을 직접 수정합니다:

<?php
$settings = [
    "theme" => "dark",
    "language" => "english", 
    "notifications" => "enabled",
    "auto_save" => "on"
];

ksort($settings);
print_r($settings);
// 출력: Array ( [auto_save] => on [language] => english [notifications] => enabled [theme] => dark )
?>

직접 해보기

<?php
// 입력 읽기
$input = fgets(STDIN);

// JSON을 배열로 변환
$departments = (array)json_decode($input, true);

// TODO: 아래에 키를 기준으로 배열을 정렬하는 코드를 작성하세요


// 결과 출력
print_r($departments);
?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨