SYNOPSIS mixed unique_array(object *obj, string|closure fun) mixed unique_array(object *obj, string|closure fun, mixed skip) mixed unique_array(object *obj, string|closure fun, mixed extra... , mixed skip) BESCHREIBUNG Gruppiert alle Objekte aus <*obj>, fuer die die Funktion <fun> den gleichen Wert liefert. Wenn <*obj> etwas anderes als Objekte enthaelt, werden diese ignoriert. Ist die Funktion mit Namen angegeben, wird sie in jedem Objekt in <*obj> einmal aufgerufen. Wurden <extra> Argumente gegeben, werden diese an die Funktion bei jedem Aufruf als Parameter uebergeben. Ist die Funktion als Closure angegeben, wird sie fuer jedes Objekt in <*obj> einmal aufgerufen, wobei das Objekt als erstes Argument uebergeben wird, gefolgt von etwaiigen <extra> Argumenten. Wird ein Argument <skip> angegeben (bei Verwendung von <extra> Argumenten muss dies geschehen), und entspricht <skip> dem Resultat von <separator> fuer ein Element aus <*obj>, so wird dieses Element nicht in das Resultat von unique_array() uebernommen. Das Resultat von unique_array() hat die Form: ({ ({same1:1, same1:2, ... same1:n}), ({same2:1, same2:2, ... same2:n}), ({samem:1, samem:2, ... samem:n}) }) BEISPIEL Um ein Array von Arrays zu erhalten, das alle Benutzer, nach Level gruppiert, enthaelt: mixed *arr; arr=unique_array(users(), "_query_level", -1); Goetter haben einen Level von -1. Sie werden nicht in arr aufgenommen, weil <skip> == -1. SIEHE AUCH filter(E), map(E)