SYNOPSIS mixed *filter(mixed *arg, string func, string|object ob, mixed extra...); mixed *filter(mixed *arg, closure cl, mixed extra...); mixed *filter(mixed *arg, mapping map, mixed extra...); mapping filter(mapping arg, string func, string|object ob, mixed extra...); mapping filter(mapping arg, closure cl, mixed extra...); BESCHREIBUNG Ruft fuer jedes Element des Arrays oder Mappings <arg> die Funktion <ob>-><func>() bzw. die Closure <cl> auf und liefert jene Elemente, fuer die die Funktion / Closure TRUE ergeben hat. Die <extra> Argumente werden als zusaetzliche Parameter an die Funktion uebergeben und duerfen keine Referenzen von Array- oder Mapping- Elementen sein (wie &(i[1]) ). Wird <ob> nicht angegeben oder ist es weder ein String noch ein Objekt, wird standardmaessig this_object() verwendet. Ist <arg> ein Array, wird <fun> mit jedem Element des Arrays als ersten Parameter aufgerufen, gefolgt von den <extra> Argumenten. Wenn das Resultat der Funktion TRUE ergibt, wird das Element in das Ergebnis der filter() Operation mit einbezogen. Wird filter() mit einem Mapping <map> anstelle der Funktion <func> aufgerufen, wird jedes Element im Array <arg>, das ein Key von <map> ist, ins Ergebnis mit einbezogen. Wenn <arg> ein Mapping ist, wird die Funktion <func> mit jedem Key als erstem und (falls vorhanden) den Werten dieses Keys als restliche Parameter, gefolgt von den <extra> Argumenten, aufgerufen. Wenn die Funktion TRUE ergibt, wird das betreffende Element des Mappings ins Ergebnis aufgenommen. Abhaengig von der Groesse des Mappings <arg> erfolgt der Aufruf der Funktion auf drei unterschiedliche Arten: widthof(arg) == 0: ob->func(key, 0, extra,...); widthof(arg) == 1: ob->func(key, arg[key], extra, ...); widthof(arg) >1: ob->fund(key, ({arg[key,0]...arg[key, n-1]}), extra, ...); Der Vorteil dieser Vorgehensweise ist, dass beide Typen von multidimensionalen Mappings (Mappings mit mehreren Werte pro Key und Mappings aus Arrays) gleich verarbeitet werden koennen. AENDERUNGEN Eingefuehrt in LDMud 3.2.6. Die Funktion loest filter_array() ab. ANMERKUNG Fuer Arrays wirkt filter() wie filter_array(), fuer Mappings stellt filter() eine Verallgemeinerung von filter_indices() dar. SIEHE AUCH filter(E), filter_indices(E), map(E), walk_mapping(E), member(E), m_contains(E)