PHP

Ordinamento Con Ksort()

Funzione ksort() in PHP: ordinare un array associativo in base alle chiavi con esempi e laboratorio pratico.


🔤 Ordinare un Array Associativo per Chiave con ksort() in PHP

La funzione ksort() serve per ordinare un array associativo in base alle chiavi, in ordine crescente. A differenza di asort() e arsort() che ordinano in base ai valori, ksort() agisce sulle chiavi mantenendo intatti i valori associati.


1. Sintassi

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

2. Esempio base

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

ksort($eta);

print_r($eta);
?>

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

L’array è stato ordinato in base alle chiavi (in ordine alfabetico), mentre i valori sono rimasti invariati.


3. Ordinamento numerico delle chiavi

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

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

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

Usando SORT_NUMERIC, l’ordinamento segue il valore numerico delle chiavi.


4. Uso del parametro sort_flags

Puoi usare il secondo parametro per controllare il tipo di confronto:

FlagDescrizione
SORT_REGULAROrdinamento standard (default)
SORT_STRINGOrdinamento alfabetico delle chiavi
SORT_NUMERICOrdinamento numerico delle chiavi
SORT_NATURALOrdina naturalmente (es. file2, file10)

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

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

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

5. Differenze tra le funzioni di ordinamento
FunzioneCosa ordinaOrdineChiavi preservate
sort()ValoriCrescenteNo
asort()ValoriCrescenteSì
arsort()ValoriDecrescenteSì
ksort()ChiaviCrescenteSì


LABORATORIO

Ordinare un array per chiavi con ksort()

In questo laboratorio imparerai a usare ksort() per ordinare un array associativo in base alle chiavi, senza modificare i valori. Vedrai esempi con chiavi testuali e numeriche.


1 Creare un array associativo

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


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

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

ksort($studenti);

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

2 Ordinare chiavi numeriche

Prova ora con chiavi numeriche:


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

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

ksort($dati, SORT_NUMERIC);

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

3 Ordinamento naturale delle chiavi

Simuliamo un elenco di file:


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

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

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

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

4 Test e analisi

  • Esegui lo script nel browser e confronta i diversi ordinamenti.
  • Prova a cambiare l’ordine delle chiavi o i loro valori.
  • Confronta il risultato con asort() per vedere la differenza tra ordinamento per chiave e per valore.