Menu
Coddy logo textTech

Sortowanie tablic asocjacyjnych według klucza

Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 23 z 68.

Sortowanie według wartości jest przydatne, ale czasami zamiast tego trzeba uporządkować tablice asocjacyjne według ich kluczy. PHP udostępnia funkcję ksort() do sortowania kluczy rosnąco oraz krsort() do sortowania kluczy malejąco, przy czym obie zachowują kluczowe powiązania między kluczami a wartościami.

Oto, jak ksort() sortuje tablicę alfabetycznie według jej kluczy:

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

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

Zauważ, że klucze są teraz uporządkowane alfabetycznie od A do Z, a każda nazwa ustawienia pozostaje prawidłowo przypisana do swojej wartości. Jest to szczególnie przydatne, gdy chcesz wyświetlać opcje konfiguracji lub pozycje menu w przewidywalny, uporządkowany sposób.

W przypadku odwrotnej kolejności alfabetycznej funkcja krsort() działa podobnie, ale sortuje klucze od Z do A. Obie funkcje modyfikują bezpośrednio oryginalną tablicę, tak jak inne funkcje sortujące PHP, dzięki czemu skutecznie porządkują dane, w których kolejność kluczy jest ważniejsza niż kolejność wartości.

challenge icon

Wyzwanie

Łatwy

Otrzymasz jedno wejście: tablicę asocjacyjną zawierającą nazwy działów i przypisane im budżety, w formacie JSON. Wczytaj dane wejściowe, przekonwertuj ciąg JSON na tablicę, użyj ksort(), aby posortować działy alfabetycznie rosnąco według kluczy, a następnie wyświetl posortowaną tablicę za pomocą print_r().

Format wejściowy: Jeden wiersz zawierający obiekt JSON, w którym kluczami są nazwy działów, a wartościami kwoty budżetów (przykład: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})

Oczekiwane wyjście: Posortowana tablica asocjacyjna w porządku alfabetycznym rosnącym według nazw działów (kluczy), wyświetlona za pomocą print_r()

Spróbuj swoich sił

<?php
// Odczytaj dane wejściowe
$input = fgets(STDIN);

// Przekształć JSON w tablicę
$departments = (array)json_decode($input, true);

// TODO: Napisz poniżej kod sortujący tablicę według kluczy


// Wyświetl wynik
print_r($departments);
?>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ programu

Poćwicz samodzielnie: Kompilator PHP online