Enumerable
interface Enumerable implements Arrayable, Countable, IteratorAggregate, Jsonable, JsonSerializable (View source)
Methods
Get the collection of items as a plain array.
Get the collection of items as JSON.
Create a new collection instance if the value isn't one already.
Create a new instance by invoking the callback a given amount of times.
Create a collection with the given range.
Wrap the given value in a collection if applicable.
Get the underlying items from the given collection if applicable.
Create a new instance with no items.
Get all items in the enumerable.
Alias for the "avg" method.
Get the median of a given key.
Get the mode of a given key.
Collapse the items into a single enumerable.
Alias for the "contains" method.
Determine if an item exists, using strict comparison.
Get the average value of a given key.
Determine if an item exists in the enumerable.
Determine if an item is not contained in the collection.
Cross join with the given lists, returning all possible permutations.
Dump the collection and end the script.
Dump the collection.
Get the items that are not present in the given items.
Get the items that are not present in the given items, using the callback.
Get the items whose keys and values are not present in the given items.
Get the items whose keys and values are not present in the given items, using the callback.
Get the items whose keys are not present in the given items.
Get the items whose keys are not present in the given items, using the callback.
Retrieve duplicate items.
Retrieve duplicate items using strict comparison.
Execute a callback over each item.
Execute a callback over each nested chunk of items.
Determine if all items pass the given truth test.
Get all items except for those with the specified keys.
Run a filter over each of the items.
Apply the callback if the given "value" is (or resolves to) truthy.
Apply the callback if the collection is empty.
Apply the callback if the collection is not empty.
Apply the callback if the given "value" is (or resolves to) falsy.
Apply the callback unless the collection is empty.
Apply the callback unless the collection is not empty.
Filter items by the given key value pair.
Filter items where the value for the given key is null.
Filter items where the value for the given key is not null.
Filter items by the given key value pair using strict comparison.
Filter items by the given key value pair using strict comparison.
Filter items such that the value of the given key is between the given values.
Filter items such that the value of the given key is not between the given values.
Filter items by the given key value pair.
Filter items by the given key value pair using strict comparison.
Filter the items, removing any items that don't match the given type(s).
Get the first item from the enumerable passing the given truth test.
Get the first item by the given key value pair.
Get a flattened array of the items in the collection.
Flip the values with their keys.
Get an item from the collection by key.
Group an associative array by a field or using a callback.
Key an associative array by a field or using a callback.
Determine if an item exists in the collection by key.
Determine if any of the keys exist in the collection.
Concatenate values of a given key as a string.
Intersect the collection with the given items.
Intersect the collection with the given items, using the callback.
Intersect the collection with the given items with additional index check.
Intersect the collection with the given items with additional index check, using the callback.
Intersect the collection with the given items by key.
Determine if the collection is empty or not.
Determine if the collection is not empty.
Determine if the collection contains a single item.
Join all items from the collection using a string. The final items can use a separate glue string.
Get the keys of the collection items.
Get the last item from the collection.
Run a map over each of the items.
Run a map over each nested chunk of items.
Run a dictionary map over the items.
Run a grouping map over the items.
Run an associative map over each of the items.
Map a collection and flatten the result by a single level.
Map the values into a new class.
Merge the collection with the given items.
Recursively merge the collection with the given items.
Create a collection by using this collection for keys and another for its values.
Union the collection with the given items.
Get the min value of a given key.
Get the max value of a given key.
Create a new collection consisting of every n-th element.
Get the items with the specified keys.
"Paginate" the collection by slicing it into a smaller collection.
Partition the collection into two arrays using the given callback or key.
Push all of the given items onto the collection.
Get one or a specified number of items randomly from the collection.
Reduce the collection to a single value.
Reduce the collection to multiple aggregate values.
Replace the collection items with the given items.
Recursively replace the collection items with the given items.
Reverse items order.
Search the collection for a given value and return the corresponding key if successful.
Get the item before the given item.
Get the item after the given item.
Shuffle the items in the collection.
Create chunks representing a "sliding window" view of the items in the collection.
Skip the first {$count} items.
Skip items in the collection until the given condition is met.
Skip items in the collection while the given condition is met.
Get a slice of items from the enumerable.
Split a collection into a certain number of groups.
Get the first item in the collection, but only if exactly one item exists. Otherwise, throw an exception.
Get the first item in the collection but throw an exception if no matching items exist.
Chunk the collection into chunks of the given size.
Chunk the collection into chunks with a callback.
Split a collection into a certain number of groups, and fill the first groups completely.
Sort through each item with a callback.
Sort items in descending order.
Sort the collection using the given callback.
Sort the collection in descending order using the given callback.
Sort the collection keys.
Sort the collection keys in descending order.
Sort the collection keys using a callback.
Get the sum of the given values.
Take the first or last {$limit} items.
Take items in the collection until the given condition is met.
Take items in the collection while the given condition is met.
Pass the collection to the given callback and then return it.
Pass the enumerable to the given callback and return the result.
Pass the collection into a new class.
Pass the collection through a series of callable pipes and return the result.
Get the values of a given key.
Create a collection of all elements that do not pass a given truth test.
Convert a flatten "dot" notation array into an expanded array.
Return only unique items from the collection array.
Return only unique items from the collection array using strict comparison.
Reset the keys on the underlying array.
Pad collection to the specified length with a value.
Get the values iterator.
Count the number of items in the collection.
Count the number of items in the collection by a field or using a callback.
Zip the collection together with one or more arrays.
Collect the values into a collection.
Convert the object into something JSON serializable.
Get a CachingIterator instance.
Convert the collection to its string representation.
Indicate that the model's string representation should be escaped when __toString is invoked.
Add a method to the list of proxied methods.
Dynamically access collection proxies.
Details
TValue>
toArray()
Get the collection of items as a plain array.
string
toJson(int $options = 0)
Get the collection of items as JSON.
static TMakeValue>
make(TMakeValue>|TMakeValue>|null $items = [])
Create a new collection instance if the value isn't one already.
static Enumerable
times(int $number, callable|null $callback = null)
Create a new instance by invoking the callback a given amount of times.
static Enumerable
range(int $from, int $to)
Create a collection with the given range.
static TWrapValue>
wrap(TWrapValue>|TWrapValue $value)
Wrap the given value in a collection if applicable.
static TUnwrapValue>
unwrap(TUnwrapValue>|TUnwrapValue> $value)
Get the underlying items from the given collection if applicable.
static Enumerable
empty()
Create a new instance with no items.
array
all()
Get all items in the enumerable.
float|int|null
average(TValue): float|int)|string|null $callback = null)
Alias for the "avg" method.
float|int|null
median(string|array<array-key, string>|null $key = null)
Get the median of a given key.
array<int, float|int>|null
mode(string|array<array-key, string>|null $key = null)
Get the mode of a given key.
static<int, mixed>
collapse()
Collapse the items into a single enumerable.
bool
some(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)
Alias for the "contains" method.
bool
containsStrict(TValue): bool|TValue|(array-key) $key, TValue|null $value = null)
Determine if an item exists, using strict comparison.
float|int|null
avg(TValue): float|int)|string|null $callback = null)
Get the average value of a given key.
bool
contains(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)
Determine if an item exists in the enumerable.
bool
doesntContain(mixed $key, mixed $operator = null, mixed $value = null)
Determine if an item is not contained in the collection.
TValue|TCrossJoinValue>>
crossJoin(TCrossJoinValue>|TCrossJoinValue> ...$lists)
Cross join with the given lists, returning all possible permutations.
never
dd(mixed ...$args)
Dump the collection and end the script.
$this
dump(mixed ...$args)
Dump the collection.
Enumerable
diff(TValue>|TValue> $items)
Get the items that are not present in the given items.
Enumerable
diffUsing(TValue>|TValue> $items, callable $callback)
Get the items that are not present in the given items, using the callback.
Enumerable
diffAssoc(TValue>|TValue> $items)
Get the items whose keys and values are not present in the given items.
Enumerable
diffAssocUsing(TValue>|TValue> $items, callable $callback)
Get the items whose keys and values are not present in the given items, using the callback.
Enumerable
diffKeys(TKey, mixed>|TKey, mixed> $items)
Get the items whose keys are not present in the given items.
Enumerable
diffKeysUsing(TKey, mixed>|TKey, mixed> $items, callable $callback)
Get the items whose keys are not present in the given items, using the callback.
Enumerable
duplicates(TValue): bool|string|null $callback = null, bool $strict = false)
Retrieve duplicate items.
Enumerable
duplicatesStrict(TValue): bool|string|null $callback = null)
Retrieve duplicate items using strict comparison.
$this
each(callable $callback)
Execute a callback over each item.
Enumerable
eachSpread(callable $callback)
Execute a callback over each nested chunk of items.
bool
every(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)
Determine if all items pass the given truth test.
Enumerable
except(TKey>|TKey> $keys)
Get all items except for those with the specified keys.
Enumerable
filter(callable|null $callback = null)
Run a filter over each of the items.
$this|TWhenReturnType
when(bool $value, callable|null $callback = null, callable|null $default = null)
Apply the callback if the given "value" is (or resolves to) truthy.
$this|TWhenEmptyReturnType
whenEmpty(callable $callback, callable|null $default = null)
Apply the callback if the collection is empty.
$this|TWhenNotEmptyReturnType
whenNotEmpty(callable $callback, callable|null $default = null)
Apply the callback if the collection is not empty.
$this|TUnlessReturnType
unless(bool $value, callable $callback, callable|null $default = null)
Apply the callback if the given "value" is (or resolves to) falsy.
$this|TUnlessEmptyReturnType
unlessEmpty(callable $callback, callable|null $default = null)
Apply the callback unless the collection is empty.
$this|TUnlessNotEmptyReturnType
unlessNotEmpty(callable $callback, callable|null $default = null)
Apply the callback unless the collection is not empty.
Enumerable
where(string $key, mixed $operator = null, mixed $value = null)
Filter items by the given key value pair.
Enumerable
whereNull(string|null $key = null)
Filter items where the value for the given key is null.
Enumerable
whereNotNull(string|null $key = null)
Filter items where the value for the given key is not null.
Enumerable
whereStrict(string $key, mixed $value)
Filter items by the given key value pair using strict comparison.
Enumerable
whereIn(string $key, Arrayable|iterable $values, bool $strict = false)
Filter items by the given key value pair.
Enumerable
whereInStrict(string $key, Arrayable|iterable $values)
Filter items by the given key value pair using strict comparison.
Enumerable
whereBetween(string $key, Arrayable|iterable $values)
Filter items such that the value of the given key is between the given values.
Enumerable
whereNotBetween(string $key, Arrayable|iterable $values)
Filter items such that the value of the given key is not between the given values.
Enumerable
whereNotIn(string $key, Arrayable|iterable $values, bool $strict = false)
Filter items by the given key value pair.
Enumerable
whereNotInStrict(string $key, Arrayable|iterable $values)
Filter items by the given key value pair using strict comparison.
TWhereInstanceOf>
whereInstanceOf(TWhereInstanceOf>|TWhereInstanceOf>> $type)
Filter the items, removing any items that don't match the given type(s).
TValue|TFirstDefault
first(callable|null $callback = null, TFirstDefault|TFirstDefault $default = null)
Get the first item from the enumerable passing the given truth test.
TValue|null
firstWhere(string $key, mixed $operator = null, mixed $value = null)
Get the first item by the given key value pair.
Enumerable
flatten(int $depth = INF)
Get a flattened array of the items in the collection.
TKey>
flip()
Flip the values with their keys.
TValue|TGetDefault
get(TKey $key, TGetDefault|TGetDefault $default = null)
Get an item from the collection by key.
TValue)>>
groupBy(TGroupKey|array|string $groupBy, bool $preserveKeys = false)
Group an associative array by a field or using a callback.
TValue>
keyBy(TNewKey|array|string $keyBy)
Key an associative array by a field or using a callback.
bool
has(TKey|TKey> $key)
Determine if an item exists in the collection by key.
bool
hasAny(mixed $key)
Determine if any of the keys exist in the collection.
string
implode(TKey): mixed|string $value, string|null $glue = null)
Concatenate values of a given key as a string.
Enumerable
intersect(TValue>|TValue> $items)
Intersect the collection with the given items.
Enumerable
intersectUsing(TValue>|TValue> $items, callable $callback)
Intersect the collection with the given items, using the callback.
Enumerable
intersectAssoc(TValue>|TValue> $items)
Intersect the collection with the given items with additional index check.
Enumerable
intersectAssocUsing(TValue>|TValue> $items, callable $callback)
Intersect the collection with the given items with additional index check, using the callback.
Enumerable
intersectByKeys(TKey, mixed>|TKey, mixed> $items)
Intersect the collection with the given items by key.
bool
isEmpty()
Determine if the collection is empty or not.
bool
isNotEmpty()
Determine if the collection is not empty.
bool
containsOneItem()
Determine if the collection contains a single item.
string
join(string $glue, string $finalGlue = '')
Join all items from the collection using a string. The final items can use a separate glue string.
TKey>
keys()
Get the keys of the collection items.
TValue|TLastDefault
last(callable|null $callback = null, TLastDefault|TLastDefault $default = null)
Get the last item from the collection.
TMapValue>
map(callable $callback)
Run a map over each of the items.
Enumerable
mapSpread(callable $callback)
Run a map over each nested chunk of items.
TMapToDictionaryValue>>
mapToDictionary(callable $callback)
Run a dictionary map over the items.
The callback should return an associative array with a single key/value pair.
TMapToGroupsValue>>
mapToGroups(callable $callback)
Run a grouping map over the items.
The callback should return an associative array with a single key/value pair.
TMapWithKeysValue>
mapWithKeys(callable $callback)
Run an associative map over each of the items.
The callback should return an associative array with a single key/value pair.
TFlatMapValue>
flatMap(callable $callback)
Map a collection and flatten the result by a single level.
TMapIntoValue>
mapInto(TMapIntoValue> $class)
Map the values into a new class.
Enumerable
merge(TValue>|TValue> $items)
Merge the collection with the given items.
TValue|TMergeRecursiveValue>
mergeRecursive(TMergeRecursiveValue>|TMergeRecursiveValue> $items)
Recursively merge the collection with the given items.
TCombineValue>
combine(TCombineValue>|TCombineValue> $values)
Create a collection by using this collection for keys and another for its values.
Enumerable
union(TValue>|TValue> $items)
Union the collection with the given items.
mixed
min(TValue): mixed|string|null $callback = null)
Get the min value of a given key.
mixed
max(TValue): mixed|string|null $callback = null)
Get the max value of a given key.
Enumerable
nth(int $step, int $offset = 0)
Create a new collection consisting of every n-th element.
Enumerable
only(TKey>|TKey>|string $keys)
Get the items with the specified keys.
Enumerable
forPage(int $page, int $perPage)
"Paginate" the collection by slicing it into a smaller collection.
TValue>>
partition(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)
Partition the collection into two arrays using the given callback or key.
TKey|TValue|TConcatValue>
concat(TConcatValue> $source)
Push all of the given items onto the collection.
TValue>|TValue
random(int|null $number = null)
Get one or a specified number of items randomly from the collection.
TReduceInitial|TReduceReturnType
reduce(callable $callback, TReduceInitial $initial = null)
Reduce the collection to a single value.
array
reduceSpread(callable $callback, mixed ...$initial)
Reduce the collection to multiple aggregate values.
Enumerable
replace(TValue>|TValue> $items)
Replace the collection items with the given items.
Enumerable
replaceRecursive(TValue>|TValue> $items)
Recursively replace the collection items with the given items.
Enumerable
reverse()
Reverse items order.
TKey|bool
search(TValue|TKey): bool $value, bool $strict = false)
Search the collection for a given value and return the corresponding key if successful.
TValue|null
before(TValue|TKey): bool $value, bool $strict = false)
Get the item before the given item.
TValue|null
after(TValue|TKey): bool $value, bool $strict = false)
Get the item after the given item.
Enumerable
shuffle()
Shuffle the items in the collection.
static<int, static>
sliding(int $size = 2, int $step = 1)
Create chunks representing a "sliding window" view of the items in the collection.
Enumerable
skip(int $count)
Skip the first {$count} items.
Enumerable
skipUntil(TValue|TKey): bool $value)
Skip items in the collection until the given condition is met.
Enumerable
skipWhile(TValue|TKey): bool $value)
Skip items in the collection while the given condition is met.
Enumerable
slice(int $offset, int|null $length = null)
Get a slice of items from the enumerable.
static<int, static>
split(int $numberOfGroups)
Split a collection into a certain number of groups.
TValue
sole(TKey): bool|string $key = null, mixed $operator = null, mixed $value = null)
Get the first item in the collection, but only if exactly one item exists. Otherwise, throw an exception.
TValue
firstOrFail(TKey): bool|string $key = null, mixed $operator = null, mixed $value = null)
Get the first item in the collection but throw an exception if no matching items exist.
static<int, static>
chunk(int $size)
Chunk the collection into chunks of the given size.
TValue>>
chunkWhile(callable $callback)
Chunk the collection into chunks with a callback.
static<int, static>
splitIn(int $numberOfGroups)
Split a collection into a certain number of groups, and fill the first groups completely.
Enumerable
sort(TValue): int|null|int $callback = null)
Sort through each item with a callback.
Enumerable
sortDesc(int $options = SORT_REGULAR)
Sort items in descending order.
Enumerable
sortBy(TValue): mixed|TKey): mixed|string|array{string, string}>|TKey): mixed|string $callback, int $options = SORT_REGULAR, bool $descending = false)
Sort the collection using the given callback.
Enumerable
sortByDesc(TValue): mixed|TKey): mixed|string|array{string, string}>|TKey): mixed|string $callback, int $options = SORT_REGULAR)
Sort the collection in descending order using the given callback.
Enumerable
sortKeys(int $options = SORT_REGULAR, bool $descending = false)
Sort the collection keys.
Enumerable
sortKeysDesc(int $options = SORT_REGULAR)
Sort the collection keys in descending order.
Enumerable
sortKeysUsing(callable $callback)
Sort the collection keys using a callback.
mixed
sum(TValue): mixed|string|null $callback = null)
Get the sum of the given values.
Enumerable
take(int $limit)
Take the first or last {$limit} items.
Enumerable
takeUntil(TValue|TKey): bool $value)
Take items in the collection until the given condition is met.
Enumerable
takeWhile(TValue|TKey): bool $value)
Take items in the collection while the given condition is met.
$this
tap(callable $callback)
Pass the collection to the given callback and then return it.
TPipeReturnType
pipe(callable $callback)
Pass the enumerable to the given callback and return the result.
TPipeIntoValue
pipeInto(TPipeIntoValue> $class)
Pass the collection into a new class.
mixed
pipeThrough(callable[] $pipes)
Pass the collection through a series of callable pipes and return the result.
static<array-key, mixed>
pluck(string|array<array-key, string> $value, string|null $key = null)
Get the values of a given key.
Enumerable
reject(TKey): bool|bool|TValue $callback = true)
Create a collection of all elements that do not pass a given truth test.
Enumerable
undot()
Convert a flatten "dot" notation array into an expanded array.
Enumerable
unique(TKey): mixed|string|null $key = null, bool $strict = false)
Return only unique items from the collection array.
Enumerable
uniqueStrict(TKey): mixed|string|null $key = null)
Return only unique items from the collection array using strict comparison.
TValue>
values()
Reset the keys on the underlying array.
TValue|TPadValue>
pad(int $size, TPadValue $value)
Pad collection to the specified length with a value.
Traversable
getIterator()
Get the values iterator.
int
count()
Count the number of items in the collection.
static<array-key, int>
countBy(TKey): array-key|string|null $countBy = null)
Count the number of items in the collection by a field or using a callback.
TValue|TZipValue>>
zip(TZipValue>|TZipValue> $items)
Zip the collection together with one or more arrays.
e.g. new Collection([1, 2, 3])->zip([4, 5, 6]); => [[1, 4], [2, 5], [3, 6]]
TValue>
collect()
Collect the values into a collection.
mixed
jsonSerialize()
Convert the object into something JSON serializable.
CachingIterator
getCachingIterator(int $flags = CachingIterator::CALL_TOSTRING)
Get a CachingIterator instance.
string
__toString()
Convert the collection to its string representation.
$this
escapeWhenCastingToString(bool $escape = true)
Indicate that the model's string representation should be escaped when __toString is invoked.
static void
proxy(string $method)
Add a method to the list of proxied methods.
mixed
__get(string $key)
Dynamically access collection proxies.
Laravel Cloud is the best place to deploy Laravel, Nuxt, Express, Hono, Node.js, Bun, Go, Flask, Python, and more, with dedicated infrastructure available on AWS through Laravel Private Cloud.