@@ -58,20 +58,163 @@ function uksort(array &$array, callable $callback): bool
5858}
5959
6060/**
61- * @template T of mixed
61+ * @template TV of mixed
62+ * @template TK of mixed
6263 *
63- * @param array<T> $one
64- * @param array<T> $two
65- * @param callable(T, T): int $three
64+ * @param array<TK, TV> $one
65+ * @param array<TK, TV> $two
66+ * @param callable(TV, TV): int $three
67+ * @return array<TK, TV>
6668 */
6769function array_udiff(
6870 array $one,
6971 array $two,
7072 callable $three
71- ): int {}
73+ ): array {}
7274
7375/**
7476 * @param array<array-key, mixed> $value
7577 * @return ($value is list ? true : false)
7678 */
7779function array_is_list(array $value): bool {}
80+
81+ /**
82+ * @template TK of array-key
83+ * @template TV of mixed
84+ *
85+ * @param array<TK, TV> $one
86+ * @param array<TK, TV> $two
87+ * @param callable(TK, TK): int $three
88+ * @return array<TK, TV>
89+ */
90+ function array_diff_uassoc(
91+ array $one,
92+ array $two,
93+ callable $three
94+ ): array {}
95+
96+ /**
97+ * @template TK of array-key
98+ * @template TV of mixed
99+ *
100+ * @param array<TK, TV> $one
101+ * @param array<TK, TV> $two
102+ * @param callable(TK, TK): int $three
103+ * @return array<TK, TV>
104+ */
105+ function array_diff_ukey(
106+ array $one,
107+ array $two,
108+ callable $three
109+ ): array {}
110+
111+ /**
112+ * @template TK of array-key
113+ * @template TV of mixed
114+ *
115+ * @param array<TK, TV> $one
116+ * @param array<TK, TV> $two
117+ * @param callable(TK, TK): int $three
118+ * @return array<TK, TV>
119+ */
120+ function array_intersect_uassoc(
121+ array $one,
122+ array $two,
123+ callable $three
124+ ): array {}
125+
126+ /**
127+ * @template TK of array-key
128+ * @template TV of mixed
129+ *
130+ * @param array<TK, TV> $one
131+ * @param array<TK, TV> $two
132+ * @param callable(TK, TK): int $three
133+ *
134+ * @return array<TK, TV>
135+ */
136+ function array_intersect_ukey(
137+ array $one,
138+ array $two,
139+ callable $three
140+ ): array {}
141+
142+ /**
143+ * @template TK of array-key
144+ * @template TV of mixed
145+ *
146+ * @param array<TK, TV> $one
147+ * @param array<TK, TV> $two
148+ * @param callable(TV, TV): int $three
149+ *
150+ * @return array<TK, TV>
151+ */
152+ function array_udiff_assoc(
153+ array $one,
154+ array $two,
155+ callable $three
156+ ): array {}
157+
158+ /**
159+ * @template TK of array-key
160+ * @template TV of mixed
161+ *
162+ * @param array<TK, TV> $one
163+ * @param array<TK, TV> $two
164+ * @param callable(TV, TV): int $three
165+ * @param callable(TK, TK): int $four
166+ * @return array<TK, TV>
167+ */
168+ function array_udiff_uassoc(
169+ array $one,
170+ array $two,
171+ callable $three,
172+ callable $four
173+ ): array {}
174+
175+ /**
176+ * @template TK of array-key
177+ * @template TV of mixed
178+ *
179+ * @param array<TK, TV> $one
180+ * @param array<TK, TV> $two
181+ * @param callable(TV, TV): int $three
182+ * @return array<TK, TV>
183+ */
184+ function array_uintersect_assoc(
185+ array $one,
186+ array $two,
187+ callable $three,
188+ ): array {}
189+
190+ /**
191+ * @template TK of array-key
192+ * @template TV of mixed
193+ *
194+ * @param array<TK, TV> $one
195+ * @param array<TK, TV> $two
196+ * @param callable(TV, TV): int $three
197+ * @param callable(TK, TK): int $four
198+ * @return array<TK, TV>
199+ */
200+ function array_uintersect_uassoc(
201+ array $one,
202+ array $two,
203+ callable $three,
204+ callable $four
205+ ): array {}
206+
207+ /**
208+ * @template TK of array-key
209+ * @template TV of mixed
210+ *
211+ * @param array<TK, TV> $one
212+ * @param array<TK, TV> $two
213+ * @param callable(TV, TV): int $three
214+ * @return array<TK, TV>
215+ */
216+ function array_uintersect(
217+ array $one,
218+ array $two,
219+ callable $three,
220+ ): array {}
0 commit comments