echo $begrüßung;
usort + kleine selbsterstellte Vergleichsfunktion.
Ähnliche Beispiele habe ich schon bei multisort gefunden.
Aber keines hat ein so tief verschachteltes Array (max. 2 Ebenen) und keines Schlüssel in 2 unterschiedlichen Ebenen.
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.
echo "$verabschiedung $name";