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.
Sfida
FacileRiceverai 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);
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Funzioni avanzate
Funzioni anonimeClosure e 'use'Funzioni frecciaFunzioni callbackUso di 'call_user_func'Funzioni variabiliPassaggio per riferimentoFunzioni ricorsiveRiepilogo: carrellata di funzioni4Array multidimensionali
Creare un array 2DAccedere agli elementi di un array 2DModificare gli elementi di un array 2DIterare con cicli annidatiArray associativi 2DRipasso: esercizio con una griglia semplice2Manipolazioni avanzate degli array
Aggiungere con 'array_push'Rimuovere con 'array_pop'Aggiungere con 'array_unshift'Rimuovere con 'array_shift'Unire array indicizzatiUnire array associativiEstrarre con 'array_slice'Valori con 'in_array'Chiavi con 'array_search'Riepilogo: esercizio playlist3Ordinare gli array
Ordina gli array indicizzati in ordine crescenteOrdina gli array indicizzati in ordine decrescenteOrdina gli array associativi per valoreOrdina gli array associativi per chiaveOrdinamento naturaleOrdinamento personalizzato con 'usort'Ripasso: ordinamento della classificaEsercitati da solo: Compilatore PHP online