Menu
Coddy logo textTech

Ordina gli array associativi per chiave

Fa parte della sezione Logica e flusso del percorso PHP di Coddy. Lezione 23 di 68.

Anche se ordinare per valori è utile, a volte devi invece organizzare gli array associativi in base alle chiavi. PHP mette a disposizione ksort() per ordinare le chiavi in ordine crescente e krsort() per ordinarle in ordine decrescente, mantenendo entrambe le cruciali relazioni chiave-valore.

Ecco come ksort() ordina un array alfabeticamente in base alle sue chiavi:

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

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

Nota come le chiavi siano ora in ordine alfabetico dalla A alla Z, mentre ogni nome di impostazione rimane correttamente associato al proprio valore. Questo è particolarmente utile quando vuoi visualizzare le opzioni di configurazione o le voci di menu in modo prevedibile e organizzato.

Per ordinare in ordine alfabetico inverso, krsort() funziona in modo simile, ma ordina le chiavi dalla Z alla A. Entrambe le funzioni modificano direttamente l’array originale, proprio come le altre funzioni di ordinamento di PHP, rendendole efficienti per organizzare i dati quando l’ordine delle chiavi è più importante di quello dei valori.

challenge icon

Sfida

Facile

Riceverai un input: un array associativo di nomi di reparti e delle rispettive allocazioni di budget in formato JSON. Leggi l’input, converti la stringa JSON in un array, usa ksort() per ordinare i reparti alfabeticamente in ordine crescente in base alle chiavi e stampa l’array ordinato usando print_r().

Formato di input: Una riga contenente un oggetto JSON con i nomi dei reparti come chiavi e gli importi del budget come valori (esempio: {"Marketing":75000,"IT":120000,"HR":65000,"Finance":95000})

Output previsto: L’array associativo ordinato in ordine alfabetico crescente in base ai nomi dei reparti (chiavi), visualizzato usando print_r()

Provalo tu

<?php
// Leggi l'input
$input = fgets(STDIN);

// Converti JSON in un array
$departments = (array)json_decode($input, true);

// TODO: Scrivi il tuo codice qui sotto per ordinare l'array in base alle chiavi


// Mostra il risultato
print_r($departments);
?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore PHP online