Ordinare un array per più di un campo
In questo articolo andrò a descrivere come ordinare un array per piu di un campo, mettiamo ad esempio di avere un elenco di persone con vari dati tra cui il cognome e l’età della persona, e voler avere lo stesso elenco ordinato per l’età delle persone e, a parità di età, per cognome.
Ecco un listato php in cui andiamo a fare il tipo di ordinamento descritto sopra.
<?php // Costruzione dell'array non ordinato $people[0]["nome"]="mario"; $people[0]["cognome"]="rossi"; $people[0]["eta"]="45"; $people[1]["nome"]="arturo"; $people[1]["cognome"]="bianchi"; $people[1]["eta"]="25"; $people[2]["nome"]="mario"; $people[2]["cognome"]="bianchi"; $people[2]["eta"]="45"; // Visualizzazione dell'array non ordinato var_dump($people); // Creazione lista valori dei campi da ordinare foreach ($people as $key => $row) { $eta[$key] = $row['eta']; $cognome[$key] = $row['cognome']; } // Ordinamento dell'array prima per età, poi per cognome @array_multisort($eta, SORT_ASC, $cognome, SORT_ASC, $people); // Visualizzazione dell'array ordinato var_dump($people); ?>










