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);
 
?>
Condividi questo articolo:
  • E-mail this story to a friend!
  • Google Bookmarks
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • LinkedIn
  • MySpace
  • StumbleUpon
  • Technorati

Lascia un commento

Categorie

Cerca

Meta

ERRORE: Non riesco a connttermi a MySQL! Controllare config.php .