Klaus: Wie Array mit uasort sortieren?

Beitrag lesen

Hallo miteinander,

ich habe ein Problem mit der uasort Funktion. Übergeben wird ein Array $ar unbekannter Länge, dessen Einträge entweder aus simplen Strings bestehen, oder selbst wieder arrays sind. Das könnte also so aussehen

Beispiel array $ar:

otto
Karl
Sportverein -> Müller, Kubatschke, Held
Heidi
Auszubildende -> Helbig, Schmid, Atkins

usw.

Jetzt möchte ich $ar mit

uasort($ar, "_compare");

sortieren, und zwar so, daß oben die Arrays sortiert stehen, dann die Namen. Schön wäre es, wenn innerhalb der Arrays ebenfalls wieder sortiert würde.

Der sortierte Array $ar sollte also so aussehen:

Auszubildende -> Atkins, Helbig, Schmid
Sportverein -> Held, Kubatschke, Müller
Heidi
Karl
Otto

Habe das mit diese Funktion versucht

function _compare($a, $b) {
  if(is_array($a))  {

return -1;
   }
   else {
       return 1;
   }
}

Ich weiß, das ist nicht richtig. Ich blicke aber auch nicht genau durch, was $a und $b machen. Wird da alles mit allem verglichen, taucht jeder Wert also einmal als $a, und später nochmal als $b auf?

Es wäre schön, wenn Ihr einen Tipp habt, wie man diese Sortierung durchführen könnte.

Vielen Dank für Eure Hilfe

Klaus