Hallo und vielen Dank an dedlfix!
Das ist in mehr oder weniger Pseudocode das was du suchst
wenn 0 == $ergebnis = strcmp($a['x'], $b['x'])
wenn 0 == $ergebnis = strcmp($a['y'], $b['y'])
return strcmp($a['z'], $b['z']);
else
return $ergebnis;
else
return $ergebnis;Oder etwas abgekürzt:
wenn 0 == $ergebnis = strcmp($a['x'], $b['x'])
wenn 0 == $ergebnis = strcmp($a['y'], $b['y'])
return strcmp($a['z'], $b['z']);
return $ergebnis;
Dieser Anstoß hat genügt, den Rest habe ich ebenfalls dankend zur Kenntnis genommen.
Hier nun die fertige Lösung (vielleicht kann es jemand gebrauchen und hat es dann damit etwas leichter und schneller als ich)
Im folgenden Beispiel werden die Adressen nach "nachname", "ort" und "strasse" sortiert.
$kunde = array(
"0" => array("vorname"=>"Hans", "nachname"=>"Michaelis", "strasse"=>"Nussweg 12", "ort"=>"Hamburg"),
"1" => array("vorname"=>"Manuela", "nachname"=>"Michaelis", "strasse"=>"Bahnhofstr. 34", "ort"=>"Berlin"),
"2" => array("vorname"=>"Klaus", "nachname"=>"Michaelis", "strasse"=>"Mühlweg 8", "ort"=>"Hamburg"),
"3" => array("vorname"=>"Sabine", "nachname"=>"Jabst", "strasse"=>"Flurweg 8", "ort"=>"Dresden"),
"4" => array("vorname"=>"Gerhard", "nachname"=>"Blum", "strasse"=>"Wiesenweg 77", "ort"=>"Berlin"),
"5" => array("vorname"=>"Marion", "nachname"=>"Michaelis", "strasse"=>"Ahornweg 12", "ort"=>"Hamburg")
);
echo "<pre>";
print_r($kunde);
echo "</pre>";
Function cmp_adresse($a, $b )
{
if (0 == $x = strcmp($a['nachname'], $b['nachname']))
{
if (0 == $x = strcmp($a['ort'], $b['ort']))
{return strcmp($a['strasse'], $b['strasse']);}
}
return $x;
}
usort($kunde, 'cmp_adresse') ;
echo "<pre>";
print_r( $kunde );
echo "</pre>";
Für Verbesserungs- und / oder Optimierungsvorschläge bin ich jederzeit offen.
Danke für die Unterstützung
Grüße Michael