Hallo,
ich möchte ein Array nach mehreren Feldern sortieren. Hier ist ein Beispiel mit meinem Lösungsversuch:
$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");
$kunde[5] = array("vorname"=>"Marion", "nachname"=>"Michaelis","strasse"=>"Ahornweg 12", "ort"=>"Hamburg");
Function sortiere_kunde(&$a)
{
Function cmp_array_nachname ($a, $b)
{
return(strcmp($a["nachname"], $b["nachname"]));
}
usort($a, "cmp_array_nachname");
}
sortiere_kunde($kunde);
echo "kunde: ";
echo "<pre>";
print_r( $kunde );
echo "</pre>";
Doch leider funktioniert das nur nach einem Feld. Wie kann ich jetzt nach einem zweiten oder dritten Feld sortieren?
Also z.B. Name, Ort, Strasse...
Gibt es dafür eventuell eine fertige Funktion oder Klasse? Danke
Gruß Marcel
ich möchte ein Array nach mehreren Feldern sortieren. Hier ist ein Beispiel mit meinem Lösungsversuch:
$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");
$kunde[5] = array("vorname"=>"Marion", "nachname"=>"Michaelis","strasse"=>"Ahornweg 12", "ort"=>"Hamburg");
Function sortiere_kunde(&$a)
{
Function cmp_array_nachname ($a, $b)
{
return(strcmp($a["nachname"], $b["nachname"]));
}
usort($a, "cmp_array_nachname");
}
sortiere_kunde($kunde);
echo "kunde: ";
echo "<pre>";
print_r( $kunde );
echo "</pre>";
Doch leider funktioniert das nur nach einem Feld. Wie kann ich jetzt nach einem zweiten oder dritten Feld sortieren?
Also z.B. Name, Ort, Strasse...
Gibt es dafür eventuell eine fertige Funktion oder Klasse? Danke
Gruß Marcel
Kommentar