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}) })
BEISPIELE
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)
|