SYNOPSIS mixed *sort_array(mixed *arr, string wrong_order) mixed *sort_array(mixed *arr, string wrong_order, object|string ob) mixed *sort_array(mixed *arr, string wrong_order, object|string ob , mixed extra...) mixed *sort_array(mixed *arr, closure cl) mixed *sort_array(mixed *arr, closure cl, mixed extra...) BESCHREIBUNG Erzeugt eine flache Kopie des Arrays und sortiert die Kopie entweder nach der Ordnungsfunktion wrong_order(a, b)> oder nach der Closure cl. Das sortierte Array wird als Ergebnis zurueck geliefert. Wenn das Argument 0 ist, ist das Resultat der Funktion auch 0. ist das Objekt, in dem die Ordnungsfunktion aufgerufen wird. kann das Objekt als solches enthalten, oder einen String mit dem Objektnamen. Wird nicht angegeben, oder enthaelt es weder einen String noch ein Objekt, wird stattdessen this_object() verwendet. Die Elemente von werden paarweise an die Ordnungsfunktion als Argumente uebergeben, gefolgt von den Argumenten, falls vorhanden. Die Ordnungsfunktion sollte eine positve Zahl liefern, wenn die paarweisen Elemente in der falschen Reihenfolge waren, 0 oder eine negative Zahl sonst. BEISPIELE Um folgendes Array in aufsteigender Reihenfolge zu ordnen: arr = ({ 3, 8, 1, 3 }) wird als Ordnungsfunktion is_greater() verwendet: int is_greater (int a, int b) { return a > b; } Folgende Aufrufe von sort_array() sind alle aequivalent: sort_array(arr, "is_greater", this_object()) sort_array(arr, "is_greater") sort_array(arr, #'is_greater) sort_array(arr, #'>) (this is the preferred variant :-) sort_array(arr, lambda(({'a, 'b}), ({#'>, 'a, 'b}))) Etwas komplizierter ist es, folgendes Array aufsteigend nach dem zweiten Argument jedes Teilarrays zu ordnen: arr = ({ ({ "foo", 3 }), ({ "quux", 1 }), ... }) Dafuer muss die Ordnungsfunktion folgende Form annehmen: int is_greater (mixed *a, mixed *b) { return a[1] > b[1]; } AENDERUNGEN LDMud 3.2.8 fuehrte die Moeglichkeit ein, zusaetzliche Argumente zu uebergeben. SIEHE AUCH transpose_array(E), filter(E), map(E), alists(LPC)