You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[`anyMatch`](#Any-Match)| Истинно, если предикат возвращает истину хотя бы для одного элемента коллекции |`Summary::anyMatch($data, $predicate)`|
196
197
|[`arePermutations`](#Are-Permutations)| Истинно, если коллекции являются перестановками друг друга |`Summary::arePermutations(...$iterables)`|
197
198
|[`arePermutationsCoercive`](#Are-Permutations-Coercive)| Истинно, если коллекции являются перестановками друг друга (в режиме приведения типов) |`Summary::arePermutationsCoercive(...$iterables)`|
199
+
|[`contains`](#Contains)| Истинно, если коллекция содержит искомое значение |`Summary::contains($data, $needle)`|
200
+
|[`containsCoercive`](#Contains-Coercive)| Истинно, если коллекция содержит искомое значение (в режиме приведения типов) |`Summary::containsCoercive($data, $needle)`|
198
201
|[`exactlyN`](#Exactly-N)| Истинно, если предикат возвращает истину в точности для N элементов |`Summary::exactlyN($data, $n, $predicate)`|
199
202
|[`isPartitioned`](#Is-Partitioned)| Истинно, если истинные элементы находятся в коллекции перед ложными (истинность определяет предикат) |`Summary::isPartitioned($data, $predicate)`|
200
203
|[`isEmpty`](#Is-Empty)| Истинно, если коллекция пуста |`Summary::isEmpty($data)`|
|[`anyMatch`](#Any-Match-1)| Истинно, если предикат возвращает истину хотя бы для одного элемента коллекции |`$stream->anyMatch($predicate)`|
310
313
|[`arePermutationsWith`](#Are-Permutations-With)| Истинно, если коллекции являются перестановками друг друга |`$stream->arePermutationsWith(...$iterables)`|
311
314
|[`arePermutationsCoerciveWith`](#Are-Permutations-Coercive-With)| Истинно, если коллекции являются перестановками друг друга (в режиме приведения типов) |`$stream->arePermutationsCoerciveWith(...$iterables)`|
315
+
|[`contains`](#Contains-1)| Истинно, если поток содержит искомое значение |`$stream->contains($needle)`|
316
+
|[`containsCoercive`](#Contains-Coercive-1)| Истинно, если поток содержит искомое значение (в режиме приведения типов) |`$stream->containsCoercive($needle)`|
312
317
|[`exactlyN`](#Exactly-N-1)| Истинно, если предикат возвращает истину в точности для N элементов |`$stream->exactlyN($n, $predicate)`|
313
318
|[`isEmpty`](#Is-Empty-1)| Истинно, если коллекция пуста |`$stream::isEmpty()`|
314
319
|[`isPartitioned`](#Is-Partitioned-1)| Истинно, если истинные элементы находятся в коллекции перед ложными (истинность определяет предикат) |`$stream::isPartitioned($predicate)`|
|[`toArray`](#To-Array)| Возвращает массив из элементов потока |`$stream->toArray()`|
345
350
|[`toAssociativeArray`](#To-Associative-Array-1)| Возвращает ассоциативный массив из элементов потока |`$stream->toAssociativeArray($keyFunc, $valueFunc)`|
351
+
|[`toPartition`](#To-Partition)| Разделяет поток на два списка: истинные и ложные |`$stream->toPartition($predicate)`|
346
352
|[`tee`](#Tee-1)| Создает несколько одинаковых независимых потоков из данного |`$stream->tee($count)`|
347
353
348
354
##### Операции с побочными эффектами
@@ -1737,6 +1743,23 @@ foreach (File::readLines($fileHandle) as $line) {
1737
1743
```
1738
1744
1739
1745
## Transform
1746
+
### Partition
1747
+
Разделяет коллекцию на два списка на основе предиката.
1748
+
1749
+
Возвращает массив из двух списков: `[истинные значения, ложные значения]`. Оба выходных массива — списки с переиндексацией (с нулевыми индексами); ключи исходной коллекции отбрасываются. Значение, возвращаемое предикатом, приводится к булевому типу через `(bool)`.
- Скаляры сравниваются нестрого по значению (`1` совпадает с `'1'`; `0` совпадает с `false`; `'1e2'` совпадает с `100`).
1931
+
- Объекты сравниваются по сериализованному значению (бросает `\InvalidArgumentException`, если искомое значение или элемент коллекции не сериализуется).
1932
+
- Массивы сравниваются по сериализованному значению.
1933
+
-`NaN` совпадает с `NaN` (согласованно с другими операциями приведения типов в библиотеке).
1934
+
- Обрывает итерацию при первом совпадении: несериализуемый элемент встретится только при отсутствии совпадений до него.
Разделяет поток на два списка на основе предиката.
4440
+
4441
+
Возвращает массив из двух списков: `[истинные значения, ложные значения]`. Оба выходных массива — списки с переиндексацией (с нулевыми индексами); ключи исходной коллекции отбрасываются. Значение, возвращаемое предикатом, приводится к булевому типу через `(bool)`.
Так как обе части возвращаются вместе, `toPartition` естественно сочетается с операциями, потребляющими два списка. Например, при составлении турнирной сетки — разделяем номера посева на верхнюю и нижнюю половины, затем образуем пары верх vs перевёрнутая нижняя половина:
0 commit comments