Hallo,
Welchen Teil des Ausgangsarrays möchtest du denn sortieren? Das gesamte Array oder das Teilarray member? Ich gehe mal von member aus, aber auch da gibt es ein kleines Problem, weil das Element _num nicht so richtig reinpasst. Da dieses Element keine gesteigerte Bedeutung hat - die Anzahl bekommt man durch Zählen raus - ist es sicher sinnvoll, dieses zuerst zu entfernen.
usort() ruft deine Vergleichsfunktion mit zwei ELementen des members-Arrays auf. Du möchtest zuerst $a['_attributes']['depth'] mit $b['_attributes']['depth'] vergleichen. Und wenn beide Werte gleich sind möchtest du stattdessen das Ergebnis des Vergleichs $a['name'] und $b['name'] zurückgeben.
Um ein Vergleichsergebnis zu erhalten, kann bei Zahlenwerten der $b-Wert vom $a-Wert subtrahiert werden. Für Stringvergleiche bietet sich strcmp() an.
Danke!
Schade, dass du das jetzt postest. Grad hab ichs selbst hinbekommen. Das glaubt mir ja jetzt keiner!
Also, hast du das Prinzip verstanden?
( ) Nein -> gehe nicht über Start, sondern zurück ins Manual, und lese nochmals nach
( ) Ja ->
uasort($xml_array['memberlist']['member'],'sort_array') ;
echo "<pre>";print_r ($xml_array);echo "</pre>";}//control
}
function sort_array($row1,$row2){
$first = strcmp($row1['_attributes']['dept'], $row2['_attributes']['dept']) ;
if ( $first )
return $first ;
else
return strcmp($row1['name'], $row2['name']) ;
}
Oder doch!? ;oP
Noch mal danke für die Hilfe zur Selbsthilfe vielleicht sollte man einen FeatureArtikel draus machen.
bydey
-- bydey ist die Signatur und Verabschiedung, nicht der Nick --
-- Navigate all your PHP web projects with PHP Project Browser--