PHP

Ordinamento Con Krsort()

Funzione krsort() in PHP: ordinare un array associativo per chiavi in ordine decrescente con esempi e laboratorio pratico.


🔽 Ordinare un Array per Chiavi in Ordine Decrescente con krsort() in PHP

La funzione krsort() serve per ordinare un array associativo in base alle chiavi, ma in ordine decrescente (cioè dalla Z alla A, o dal numero più grande al più piccolo). Come ksort(), mantiene le chiavi originali e i loro valori associati.


1. Sintassi

krsort(array, sort_flags);
  • array → l’array da ordinare.
  • sort_flags (opzionale) → specifica il tipo di ordinamento (alfabetico, numerico, naturale, ecc.).

2. Esempio base

<?php
$eta = [
    "Luca" => 25,
    "Anna" => 20,
    "Marco" => 30
];

krsort($eta);

print_r($eta);
?>

Array
(
    [Marco] => 30
    [Luca] => 25
    [Anna] => 20
)

L’array è stato ordinato in base alle chiavi in ordine decrescente (Z → A), ma i valori sono rimasti collegati alle rispettive chiavi.


3. Ordinamento numerico delle chiavi

<?php
$dati = [
    10 => "Dieci",
    2 => "Due",
    5 => "Cinque"
];

krsort($dati, SORT_NUMERIC);
print_r($dati);
?>

Array
(
    [10] => Dieci
    [5] => Cinque
    [2] => Due
)

In questo caso, l’array viene ordinato dalla chiave più alta alla più bassa.


4. Uso del parametro sort_flags

Il secondo parametro permette di controllare il tipo di confronto:

FlagDescrizione
SORT_REGULAROrdinamento standard (default)
SORT_STRINGOrdinamento alfabetico
SORT_NUMERICOrdinamento numerico
SORT_NATURALOrdina naturalmente (utile per file o versioni)

<?php
$file = [
    "file2" => "Documento B",
    "file10" => "Documento C",
    "file1" => "Documento A"
];

krsort($file, SORT_NATURAL);
print_r($file);
?>

Array
(
    [file10] => Documento C
    [file2] => Documento B
    [file1] => Documento A
)

5. Differenze tra le funzioni di ordinamento per chiavi
FunzioneOrdina perOrdineChiavi preservate
ksort()ChiaviCrescenteSì
krsort()ChiaviDecrescenteSì
asort()ValoriCrescenteSì
arsort()ValoriDecrescenteSì


LABORATORIO

Ordinare un array per chiavi in ordine decrescente con krsort()

In questo laboratorio imparerai a usare krsort() per ordinare un array associativo in base alle chiavi in ordine inverso, mantenendo i valori correttamente associati.


1 Ordinare un array di studenti per chiave decrescente

Crea un file chiamato ordinamento-krsort.php e inserisci il seguente codice:


<?php
$studenti = [
    "Marco" => 30,
    "Luca" => 25,
    "Anna" => 28
];

echo "<h3>Array originale:</h3>";
print_r($studenti);

krsort($studenti);

echo "<h3>Array ordinato per chiave (Z → A):</h3>";
print_r($studenti);
?>
    

2 Ordinare chiavi numeriche in senso inverso

Prova ora con chiavi numeriche:


<?php
$dati = [
    10 => "Dieci",
    3 => "Tre",
    5 => "Cinque"
];

echo "<h3>Prima dell'ordinamento:</h3>";
print_r($dati);

krsort($dati, SORT_NUMERIC);

echo "<h3>Dopo l'ordinamento numerico decrescente delle chiavi:</h3>";
print_r($dati);
?>
    

3 Ordinamento naturale inverso delle chiavi

Simuliamo un elenco di file:


<?php
$file = [
    "file2" => "Documento B",
    "file10" => "Documento C",
    "file1" => "Documento A"
];

echo "<h3>Ordinamento standard inverso:</h3>";
krsort($file);
print_r($file);

$file = [
    "file2" => "Documento B",
    "file10" => "Documento C",
    "file1" => "Documento A"
];

echo "<h3>Ordinamento naturale inverso (file10 → file1):</h3>";
krsort($file, SORT_NATURAL);
print_r($file);
?>
    

4 Test e analisi

  • Esegui lo script nel browser e osserva come cambia l'ordine delle chiavi.
  • Prova a confrontare i risultati con ksort() per capire la differenza.
  • Usa SORT_NUMERIC o SORT_NATURAL per testare diversi tipi di chiavi.
  • Prova ad aggiungere nuove chiavi e osserva dove vengono posizionate.