diff --git a/collections.md b/collections.md index 6a03d66c..216ba3c2 100644 --- a/collections.md +++ b/collections.md @@ -1,5 +1,5 @@ --- -git: 660e0c0b5d1a90c8d7e04b1711032d4499496ee2 +git: d83edfc43fa745bc73531b830248326262771f07 --- # Коллекции @@ -75,154 +75,157 @@ git: 660e0c0b5d1a90c8d7e04b1711032d4499496ee2
-- [`after`](#method-after) -- [`all()`](#method-all) -- [`average()`](#method-average) -- [`avg()`](#method-avg) -- [`before`](#method-before) -- [`chunk()`](#method-chunk) -- [`chunkWhile()`](#method-chunkwhile) -- [`collapse()`](#method-collapse) -- [`collect()`](#method-collect) -- [`combine()`](#method-combine) -- [`concat()`](#method-concat) -- [`contains()`](#method-contains) -- [`containsOneItem()`](#method-containsoneitem) -- [`containsStrict()`](#method-containsstrict) -- [`count()`](#method-count) -- [`countBy()`](#method-countBy) -- [`crossJoin()`](#method-crossjoin) -- [`dd()`](#method-dd) -- [`diff()`](#method-diff) -- [`diffAssoc()`](#method-diffassoc) -- [`diffAssocUsing()`](#method-diffassocusing) -- [`diffKeys()`](#method-diffkeys) -- [`doesntContain`](#method-doesntcontain) -- [`dot()`](#method-dot) -- [`dump()`](#method-dump) -- [`duplicates()`](#method-duplicates) -- [`duplicatesStrict()`](#method-duplicatesstrict) -- [`each()`](#method-each) -- [`eachSpread()`](#method-eachspread) -- [`ensure()`](#method-ensure) -- [`every()`](#method-every) -- [`except()`](#method-except) -- [`filter()`](#method-filter) -- [`first()`](#method-first) -- [`firstOrFail()`](#method-first-or-fail) -- [`firstWhere()`](#method-firstwhere) -- [`flatMap()`](#method-flatmap) -- [`flatten()`](#method-flatten) -- [`flip()`](#method-flip) -- [`forget()`](#method-forget) -- [`forPage()`](#method-forpage) -- [`get()`](#method-get) -- [`groupBy()`](#method-groupby) -- [`has()`](#method-has) -- [`hasAny()`](#method-hasany) -- [`implode()`](#method-implode) -- [`intersect()`](#method-intersect) -- [`intersectAssoc()`](#method-intersectAssoc) -- [`intersectByKeys()`](#method-intersectbykeys) -- [`isEmpty()`](#method-isempty) -- [`isNotEmpty()`](#method-isnotempty) -- [`join()`](#method-join) -- [`keyBy()`](#method-keyby) -- [`keys()`](#method-keys) -- [`last()`](#method-last) -- [`lazy()`](#method-lazy) -- [`macro()`](#method-macro) -- [`make()`](#method-make) -- [`map()`](#method-map) -- [`mapInto()`](#method-mapinto) -- [`mapSpread()`](#method-mapspread) -- [`mapToGroups()`](#method-maptogroups) -- [`mapWithKeys()`](#method-mapwithkeys) -- [`max()`](#method-max) -- [`median()`](#method-median) -- [`merge()`](#method-merge) -- [`mergeRecursive()`](#method-mergerecursive) -- [`min()`](#method-min) -- [`mode()`](#method-mode) -- [`multiply`](#method-multiply) -- [`nth()`](#method-nth) -- [`only()`](#method-only) -- [`pad()`](#method-pad) -- [`partition()`](#method-partition) -- [`percentage()`](#method-percentage) -- [`pipe()`](#method-pipe) -- [`pipeInto()`](#method-pipeinto) -- [`pipeThrough()`](#method-pipethrough) -- [`pluck()`](#method-pluck) -- [`pop()`](#method-pop) -- [`prepend()`](#method-prepend) -- [`pull()`](#method-pull) -- [`push()`](#method-push) -- [`put()`](#method-put) -- [`random()`](#method-random) -- [`range`](#method-range) -- [`reduce()`](#method-reduce) -- [`reduceSpread`](#method-reduce-spread) -- [`reject()`](#method-reject) -- [`replace()`](#method-replace) -- [`replaceRecursive()`](#method-replacerecursive) -- [`reverse()`](#method-reverse) -- [`search()`](#method-search) +- [after](#method-after) +- [all()](#method-all) +- [average()](#method-average) +- [avg()](#method-avg) +- [before](#method-before) +- [chunk()](#method-chunk) +- [chunkWhile()](#method-chunkwhile) +- [collapse()](#method-collapse) +- [collapseWithKeys](#method-collapsewithkeys) +- [collect()](#method-collect) +- [combine()](#method-combine) +- [concat()](#method-concat) +- [contains()](#method-contains) +- [containsOneItem()](#method-containsoneitem) +- [containsStrict()](#method-containsstrict) +- [count()](#method-count) +- [countBy()](#method-countBy) +- [crossJoin()](#method-crossjoin) +- [dd()](#method-dd) +- [diff()](#method-diff) +- [diffAssoc()](#method-diffassoc) +- [diffAssocUsing()](#method-diffassocusing) +- [diffKeys()](#method-diffkeys) +- [doesntContain](#method-doesntcontain) +- [dot()](#method-dot) +- [dump()](#method-dump) +- [duplicates()](#method-duplicates) +- [duplicatesStrict()](#method-duplicatesstrict) +- [each()](#method-each) +- [eachSpread()](#method-eachspread) +- [ensure()](#method-ensure) +- [every()](#method-every) +- [except()](#method-except) +- [filter()](#method-filter) +- [first()](#method-first) +- [firstOrFail()](#method-first-or-fail) +- [firstWhere()](#method-firstwhere) +- [flatMap()](#method-flatmap) +- [flatten()](#method-flatten) +- [flip()](#method-flip) +- [forget()](#method-forget) +- [forPage()](#method-forpage) +- [get()](#method-get) +- [groupBy()](#method-groupby) +- [has()](#method-has) +- [hasAny()](#method-hasany) +- [implode()](#method-implode) +- [intersect()](#method-intersect) +- [intersectUsing](#method-intersectusing) +- [intersectAssoc()](#method-intersectAssoc) +- [intersectAssocUsing](#method-intersectassocusing) +- [intersectByKeys()](#method-intersectbykeys) +- [isEmpty()](#method-isempty) +- [isNotEmpty()](#method-isnotempty) +- [join()](#method-join) +- [keyBy()](#method-keyby) +- [keys()](#method-keys) +- [last()](#method-last) +- [lazy()](#method-lazy) +- [macro()](#method-macro) +- [make()](#method-make) +- [map()](#method-map) +- [mapInto()](#method-mapinto) +- [mapSpread()](#method-mapspread) +- [mapToGroups()](#method-maptogroups) +- [mapWithKeys()](#method-mapwithkeys) +- [max()](#method-max) +- [median()](#method-median) +- [merge()](#method-merge) +- [mergeRecursive()](#method-mergerecursive) +- [min()](#method-min) +- [mode()](#method-mode) +- [multiply](#method-multiply) +- [nth()](#method-nth) +- [only()](#method-only) +- [pad()](#method-pad) +- [partition()](#method-partition) +- [percentage()](#method-percentage) +- [pipe()](#method-pipe) +- [pipeInto()](#method-pipeinto) +- [pipeThrough()](#method-pipethrough) +- [pluck()](#method-pluck) +- [pop()](#method-pop) +- [prepend()](#method-prepend) +- [pull()](#method-pull) +- [push()](#method-push) +- [put()](#method-put) +- [random()](#method-random) +- [range](#method-range) +- [reduce()](#method-reduce) +- [reduceSpread](#method-reduce-spread) +- [reject()](#method-reject) +- [replace()](#method-replace) +- [replaceRecursive()](#method-replacerecursive) +- [reverse()](#method-reverse) +- [search()](#method-search) - [select](#method-select) -- [`shift()`](#method-shift) -- [`shuffle()`](#method-shuffle) -- [`skip()`](#method-skip) -- [`skipUntil()`](#method-skipuntil) -- [`skipWhile()`](#method-skipwhile) -- [`slice()`](#method-slice) -- [`sliding`](#method-sliding) -- [`sole`](#method-sole) -- [`some()`](#method-some) -- [`sort()`](#method-sort) -- [`sortBy()`](#method-sortby) -- [`sortByDesc()`](#method-sortbydesc) -- [`sortDesc()`](#method-sortdesc) -- [`sortKeys()`](#method-sortkeys) -- [`sortKeysDesc()`](#method-sortkeysdesc) -- [`sortKeysUsing()`](#method-sortkeysusing) -- [`splice()`](#method-splice) -- [`split()`](#method-split) -- [`splitIn()`](#method-splitin) -- [`sum()`](#method-sum) -- [`take()`](#method-take) -- [`takeUntil()`](#method-takeuntil) -- [`takeWhile()`](#method-takewhile) -- [`tap()`](#method-tap) -- [`times()`](#method-times) -- [`toArray()`](#method-toarray) -- [`toJson()`](#method-tojson) -- [`transform()`](#method-transform) -- [`undot()`](#method-undot) -- [`union()`](#method-union) -- [`unique()`](#method-unique) -- [`uniqueStrict()`](#method-uniquestrict) -- [`unless()`](#method-unless) -- [`unlessEmpty()`](#method-unlessempty) -- [`unlessNotEmpty()`](#method-unlessnotempty) -- [`unwrap()`](#method-unwrap) -- [`value()`](#method-value) -- [`values()`](#method-values) -- [`when()`](#method-when) -- [`whenEmpty()`](#method-whenempty) -- [`whenNotEmpty()`](#method-whennotempty) -- [`where()`](#method-where) -- [`whereStrict()`](#method-wherestrict) -- [`whereBetween()`](#method-wherebetween) -- [`whereIn()`](#method-wherein) -- [`whereInStrict()`](#method-whereinstrict) -- [`whereInstanceOf()`](#method-whereinstanceof) -- [`whereNotBetween()`](#method-wherenotbetween) -- [`whereNotIn()`](#method-wherenotin) -- [`whereNotInStrict()`](#method-wherenotinstrict) -- [`whereNotNull()`](#method-wherenotnull) -- [`whereNull()`](#method-wherenull) -- [`wrap()`](#method-wrap) -- [`zip()`](#method-zip) +- [shift()](#method-shift) +- [shuffle()](#method-shuffle) +- [skip()](#method-skip) +- [skipUntil()](#method-skipuntil) +- [skipWhile()](#method-skipwhile) +- [slice()](#method-slice) +- [sliding](#method-sliding) +- [sole](#method-sole) +- [some()](#method-some) +- [sort()](#method-sort) +- [sortBy()](#method-sortby) +- [sortByDesc()](#method-sortbydesc) +- [sortDesc()](#method-sortdesc) +- [sortKeys()](#method-sortkeys) +- [sortKeysDesc()](#method-sortkeysdesc) +- [sortKeysUsing()](#method-sortkeysusing) +- [splice()](#method-splice) +- [split()](#method-split) +- [splitIn()](#method-splitin) +- [sum()](#method-sum) +- [take()](#method-take) +- [takeUntil()](#method-takeuntil) +- [takeWhile()](#method-takewhile) +- [tap()](#method-tap) +- [times()](#method-times) +- [toArray()](#method-toarray) +- [toJson()](#method-tojson) +- [transform()](#method-transform) +- [undot()](#method-undot) +- [union()](#method-union) +- [unique()](#method-unique) +- [uniqueStrict()](#method-uniquestrict) +- [unless()](#method-unless) +- [unlessEmpty()](#method-unlessempty) +- [unlessNotEmpty()](#method-unlessnotempty) +- [unwrap()](#method-unwrap) +- [value()](#method-value) +- [values()](#method-values) +- [when()](#method-when) +- [whenEmpty()](#method-whenempty) +- [whenNotEmpty()](#method-whennotempty) +- [where()](#method-where) +- [whereStrict()](#method-wherestrict) +- [whereBetween()](#method-wherebetween) +- [whereIn()](#method-wherein) +- [whereInStrict()](#method-whereinstrict) +- [whereInstanceOf()](#method-whereinstanceof) +- [whereNotBetween()](#method-wherenotbetween) +- [whereNotIn()](#method-wherenotin) +- [whereNotInStrict()](#method-wherenotinstrict) +- [whereNotNull()](#method-wherenotnull) +- [whereNull()](#method-wherenull) +- [wrap()](#method-wrap) +- [zip()](#method-zip)
@@ -372,6 +375,28 @@ git: 660e0c0b5d1a90c8d7e04b1711032d4499496ee2 // [1, 2, 3, 4, 5, 6, 7, 8, 9] + +#### `collapseWithKeys()` + +Метод `collapseWithKeys` объединяет коллекцию массивов или коллекций в одну коллекцию, сохраняя исходные ключи нетронутыми: + + $collection = collect([ + ['first' => collect([1, 2, 3])], + ['second' => [4, 5, 6]], + ['third' => collect([7, 8, 9])] + ]); + + + $collapsed = $collection->collapseWithKeys(); + + $collapsed->all(); + + // [ + // 'first' => [1, 2, 3], + // 'second' => [4, 5, 6], + // 'third' => [7, 8, 9], + // ] + #### `collect()` @@ -1259,6 +1284,21 @@ git: 660e0c0b5d1a90c8d7e04b1711032d4499496ee2 > [!NOTE] > Поведение этого метода изменяется при использовании [коллекций Eloquent](/docs/{{version}}/eloquent-collections#method-intersect). + +#### `intersectUsing()` + +Метод `intersectUsing` удаляет из исходной коллекции все значения, отсутствующие в заданном `array` или коллекции, используя пользовательский обратный вызов для сравнения значений. Результирующая коллекция сохранит ключи исходной коллекции: + + $collection = collect(['Desk', 'Sofa', 'Chair']); + + $intersect = $collection->intersectUsing(['desk', 'chair', 'bookcase'], function ($a, $b) { + return strcasecmp($a, $b); + }); + + $intersect->all(); + + // [0 => 'Desk', 2 => 'Chair'] + #### `intersectAssoc()` @@ -1280,6 +1320,29 @@ git: 660e0c0b5d1a90c8d7e04b1711032d4499496ee2 // ['size' => 'M'] + +#### `intersectAssocUsing()` + +Метод `intersectAssocUsing` сравнивает исходную коллекцию с другой коллекцией или `массивом`, возвращая пары ключ/значение, присутствующие в обеих, используя пользовательский обратный вызов сравнения для определения равенства как ключей, так и значений: + + $collection = collect([ + 'color' => 'red', + 'Size' => 'M', + 'material' => 'cotton', + ]); + + $intersect = $collection->intersectAssocUsing([ + 'color' => 'blue', + 'size' => 'M', + 'material' => 'polyester', + ], function ($a, $b) { + return strcasecmp($a, $b); + }); + + $intersect->all(); + + // ['Size' => 'M'] + #### `intersectByKeys()`