blob: 72da0b0502379a1c50941b2eb7d27b480f25b5a2 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001SYNOPSIS
Zesstra5481d492021-04-08 20:07:06 +02002 <object|lwobject>** unique_array(<object|lwobject> *obj
3 , string|closure fun)
4 <object|lwobject>** unique_array(<object|lwobject> *obj
5 , string|closure fun, mixed skip)
6 <object|lwobject>** unique_array(<object|lwobject> *obj
7 , string|closure fun, mixed extra...
MG Mud User88f12472016-06-24 23:31:02 +02008 , mixed skip)
9
10BESCHREIBUNG
11 Gruppiert alle Objekte aus <*obj>, fuer die die Funktion <fun>
12 den gleichen Wert liefert. Wenn <*obj> etwas anderes als Objekte
13 enthaelt, werden diese ignoriert.
14
15 Ist die Funktion mit Namen angegeben, wird sie in jedem Objekt
16 in <*obj> einmal aufgerufen. Wurden <extra> Argumente
17 gegeben, werden diese an die Funktion bei jedem Aufruf als
18 Parameter uebergeben.
19
20 Ist die Funktion als Closure angegeben, wird sie fuer jedes Objekt
21 in <*obj> einmal aufgerufen, wobei das Objekt als erstes Argument
22 uebergeben wird, gefolgt von etwaiigen <extra> Argumenten.
23
24 Wird ein Argument <skip> angegeben (bei Verwendung von <extra>
25 Argumenten muss dies geschehen), und entspricht <skip> dem
26 Resultat von <separator> fuer ein Element aus <*obj>, so wird
27 dieses Element nicht in das Resultat von unique_array()
28 uebernommen.
29
30 Das Resultat von unique_array() hat die Form:
31
32 ({ ({same1:1, same1:2, ... same1:n}),
33 ({same2:1, same2:2, ... same2:n}),
34 ({samem:1, samem:2, ... samem:n}) })
35
Zesstrad59c3892019-11-28 20:53:39 +010036BEISPIELE
MG Mud User88f12472016-06-24 23:31:02 +020037 Um ein Array von Arrays zu erhalten, das alle Benutzer, nach Level
38 gruppiert, enthaelt:
39
40 mixed *arr;
Zesstrad59c3892019-11-28 20:53:39 +010041 arr = unique_array(users(), "_query_level", -1);
MG Mud User88f12472016-06-24 23:31:02 +020042
43 Goetter haben einen Level von -1. Sie werden nicht in arr aufgenommen,
44 weil <skip> == -1.
45
46SIEHE AUCH
Zesstrad59c3892019-11-28 20:53:39 +010047 filter(E), map(E)