Micheal: Array nach mehreren Feldern sortieren

Beitrag lesen

Hallo mega,

danke für deine Antwort!

Ganz einfach. Du sortierst in deinem Fall genau in der Reihenfolge, die du aufgezählt hast. Erst nach Nachname, dann nach Ort und dann nach Strasse. Also drei Sortierungen nacheinandner

Du meinst so:

$kunde[0] = array("vorname"=>"Hans",  "nachname"=>"Maier",  "strasse"=>"Nussweg 12",  "Ort"=>"München");
 $kunde[1] = array("vorname"=>"Manuela", "nachname"=>"Schmidt",  "strasse"=>"Bahnhofstr. 34","Ort"=>"Frankfurt");
 $kunde[2] = array("vorname"=>"Klaus",  "nachname"=>"Michaelis","strasse"=>"Mühlweg 8",  "Ort"=>"Hamburg");
 $kunde[3] = array("vorname"=>"Sabine",  "nachname"=>"Jabst",  "strasse"=>"Flurweg 8",  "Ort"=>"Dresden");
 $kunde[4] = array("vorname"=>"Gerhard", "nachname"=>"Blum",  "strasse"=>"Wiesenweg 77",  "Ort"=>"Berlin");

Function sortiere_kunde(&$a)
  {
  Function cmp_array_nachname ($a, $b) {return strcmp($a["nachname"], $b["nachname"]);}
  Function cmp_array_ort   ($a, $b) {return strcmp($a["ort"], $b["ort"]);}
  usort($a, "cmp_array_nachname");
  usort($a, "cmp_array_ort");
  }

sortiere_kunde($kunde);

echo "kunde: ";

echo "<pre>";
  print_r( $kunde );
 echo "</pre>";

Im Normalfall hast du dann eine Sortierung nach diesen Kriterien.

Da wird aber die Sortierung nach "nachname" durch die Sortierung nach "ort" wieder zerstört. Oder habe ich etwas falsch verstanden?