class Collection implements ArrayAccess, CanBeEscapedWhenCastToString, Enumerable (View source)

Traits

Properties

protected bool $escapeWhenCastingToString

Indicates that the object's string representation should be escaped when __toString is invoked.

from  EnumeratesValues
static protected array<int, string> $proxies

The methods that can be proxied.

from  EnumeratesValues
HigherOrderCollectionProxy read-only $average from  EnumeratesValues
HigherOrderCollectionProxy read-only $avg from  EnumeratesValues
HigherOrderCollectionProxy read-only $contains from  EnumeratesValues
HigherOrderCollectionProxy read-only $doesntContain from  EnumeratesValues
HigherOrderCollectionProxy read-only $each from  EnumeratesValues
HigherOrderCollectionProxy read-only $every from  EnumeratesValues
HigherOrderCollectionProxy read-only $filter from  EnumeratesValues
HigherOrderCollectionProxy read-only $first from  EnumeratesValues
HigherOrderCollectionProxy read-only $flatMap from  EnumeratesValues
HigherOrderCollectionProxy read-only $groupBy from  EnumeratesValues
HigherOrderCollectionProxy read-only $keyBy from  EnumeratesValues
HigherOrderCollectionProxy read-only $map from  EnumeratesValues
HigherOrderCollectionProxy read-only $max from  EnumeratesValues
HigherOrderCollectionProxy read-only $min from  EnumeratesValues
HigherOrderCollectionProxy read-only $partition from  EnumeratesValues
HigherOrderCollectionProxy read-only $reject from  EnumeratesValues
HigherOrderCollectionProxy read-only $skipUntil from  EnumeratesValues
HigherOrderCollectionProxy read-only $skipWhile from  EnumeratesValues
HigherOrderCollectionProxy read-only $some from  EnumeratesValues
HigherOrderCollectionProxy read-only $sortBy from  EnumeratesValues
HigherOrderCollectionProxy read-only $sortByDesc from  EnumeratesValues
HigherOrderCollectionProxy read-only $sum from  EnumeratesValues
HigherOrderCollectionProxy read-only $takeUntil from  EnumeratesValues
HigherOrderCollectionProxy read-only $takeWhile from  EnumeratesValues
HigherOrderCollectionProxy read-only $unique from  EnumeratesValues
HigherOrderCollectionProxy read-only $unless from  EnumeratesValues
HigherOrderCollectionProxy read-only $until from  EnumeratesValues
HigherOrderCollectionProxy read-only $when from  EnumeratesValues
static protected array $macros

The registered string macros.

from  Macroable
protected TValue> $items

The items contained in the collection.

Methods

$this|TWhenReturnType
when(TWhenParameter|TWhenParameter|null $value = null, callable|null $callback = null, callable|null $default = null)

Apply the callback if the given "value" is (or resolves to) truthy.

$this|TUnlessReturnType
unless(TUnlessParameter|TUnlessParameter|null $value = null, callable|null $callback = null, callable|null $default = null)

Apply the callback if the given "value" is (or resolves to) falsy.

static TMakeValue>
make(TMakeValue>|TMakeValue>|null $items = [])

Create a new collection instance if the value isn't one already.

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.

empty()

Create a new instance with no items.

static TTimesValue>
times(int $number, callable|null $callback = null)

Create a new collection by invoking the callback a given amount of times.

float|int|null
average(TValue): float|int)|string|null $callback = null)

Alias for the "avg" method.

bool
some(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)

Alias for the "contains" method.

never
dd(mixed ...$args)

Dump the items and end the script.

$this
dump()

Dump the items.

$this
each(callable $callback)

Execute a callback over each item.

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.

TValue|null
firstWhere(callable|string $key, mixed $operator = null, mixed $value = null)

Get the first item by the given key value pair.

mixed
value(string $key, mixed $default = null)

Get a single key's value from the first matching item in the collection.

bool
isNotEmpty()

Determine if the collection is not empty.

TMapSpreadValue>
mapSpread(callable $callback)

Run a map over each nested chunk of items.

TMapToGroupsValue>>
mapToGroups(callable $callback)

Run a grouping map over the items.

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.

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.

forPage(int $page, int $perPage)

"Paginate" the collection by slicing it into a smaller collection.

TValue>>
partition(TKey): bool|TValue|string $key, TValue|string|null $operator = null, TValue|null $value = null)

Partition the collection into two arrays using the given callback or key.

mixed
sum(TValue): mixed|string|null $callback = null)

Get the sum of the given values.

$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|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.

where(callable|string $key, mixed $operator = null, mixed $value = null)

Filter items by the given key value pair.

whereNull(string|null $key = null)

Filter items where the value for the given key is null.

whereNotNull(string|null $key = null)

Filter items where the value for the given key is not null.

whereStrict(string $key, mixed $value)

Filter items by the given key value pair using strict comparison.

whereIn(string $key, Arrayable|iterable $values, bool $strict = false)

Filter items by the given key value pair.

whereInStrict(string $key, Arrayable|iterable $values)

Filter items by the given key value pair using strict comparison.

whereBetween(string $key, Arrayable|iterable $values)

Filter items such that the value of the given key is between the given values.

whereNotBetween(string $key, Arrayable|iterable $values)

Filter items such that the value of the given key is not between the given values.

whereNotIn(string $key, Arrayable|iterable $values, bool $strict = false)

Filter items by the given key value pair.

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).

TPipeReturnType
pipe(callable $callback)

Pass the collection to the given callback and return the result.

mixed
pipeInto(class-string $class)

Pass the collection into a new class.

mixed
pipeThrough(callable[] $callbacks)

Pass the collection through a series of callable pipes and return the result.

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.

reject(TKey): bool|bool|TValue $callback = true)

Create a collection of all elements that do not pass a given truth test.

$this
tap(callable $callback)

Pass the collection to the given callback and then return it.

unique(TKey): mixed|string|null $key = null, bool $strict = false)

Return only unique items from the collection array.

uniqueStrict(TKey): mixed|string|null $key = null)

Return only unique items from the collection array using strict comparison.

TValue>
collect()

Collect the values into a collection.

TKey, mixed>
toArray()

Get the collection of items as a plain array.

array
jsonSerialize()

Convert the object into something JSON serializable.

string
toJson(int $options = 0)

Get the collection of items as JSON.

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.

TValue>
getArrayableItems(mixed $items)

Results array of items from Collection or Arrayable.

operatorForWhere(callable|string $key, string|null $operator = null, mixed $value = null)

Get an operator checker callback.

bool
useAsCallable(mixed $value)

Determine if the given value is callable, but not a string.

callable
valueRetriever(callable|string|null $value)

Get a value retrieving callback.

Closure(mixed): bool
equality(mixed $value)

Make a function to check an item's equality.

negate(Closure $callback)

Make a function using another function, by negating its result.

TValue
identity()

Make a function that returns what's passed to it.

static void
macro(string $name, object|callable $macro)

Register a custom macro.

static void
mixin(object $mixin, bool $replace = true)

Mix another object into the class.

static bool
hasMacro(string $name)

Checks if macro is registered.

static void
flushMacros()

Flush the existing macros.

static mixed
__callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

mixed
__call(string $method, array $parameters)

Dynamically handle calls to the class.

void
__construct(TValue>|TValue>|null $items = [])

Create a new collection.

static Enumerable
range(int $from, int $to)

Create a collection with the given range.

array
all()

Get all of the items in the collection.

TValue>
lazy()

Get a lazy collection for the items in this collection.

float|int|null
avg(TValue): float|int)|string|null $callback = null)

Get the average value of a given key.

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 collection of items into a single array.

bool
contains(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)

Determine if an item exists in the collection.

bool
containsStrict(TValue): bool|TValue|(array-key) $key, TValue|null $value = null)

Determine if an item exists, using strict comparison.

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.

diff(TValue>|TValue> $items)

Get the items in the collection that are not present in the given items.

diffUsing(TValue>|TValue> $items, callable $callback)

Get the items in the collection that are not present in the given items, using the callback.

diffAssoc(TValue>|TValue> $items)

Get the items in the collection whose keys and values are not present in the given items.

diffAssocUsing(TValue>|TValue> $items, callable $callback)

Get the items in the collection whose keys and values are not present in the given items, using the callback.

diffKeys(TValue>|TValue> $items)

Get the items in the collection whose keys are not present in the given items.

diffKeysUsing(TValue>|TValue> $items, callable $callback)

Get the items in the collection whose keys are not present in the given items, using the callback.

duplicates(TValue): bool|string|null $callback = null, bool $strict = false)

Retrieve duplicate items from the collection.

duplicatesStrict(TValue): bool|string|null $callback = null)

Retrieve duplicate items from the collection using strict comparison.

TValue): bool
duplicateComparator(bool $strict)

Get the comparison function to detect duplicates.

except(TKey>|TKey> $keys)

Get all items except for those with the specified keys.

filter(callable|null $callback = null)

Run a filter over each of the items.

TValue|TFirstDefault
first(callable|null $callback = null, TFirstDefault|TFirstDefault $default = null)

Get the first item from the collection passing the given truth test.

flatten(int $depth = INF)

Get a flattened array of the items in the collection.

TKey>
flip()

Flip the items in the collection.

$this
forget(TKey|TKey> $keys)

Remove an item from the collection by key.

TValue|TGetDefault
get(TKey $key, TGetDefault|TGetDefault $default = null)

Get an item from the collection by key.

mixed
getOrPut(mixed $key, mixed $value)

Get an item from the collection by key or add it to collection if it does not exist.

TValue>>
groupBy(TKey): array-key|array|string $groupBy, bool $preserveKeys = false)

Group an associative array by a field or using a callback.

TValue>
keyBy(TKey): array-key|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(string $value, string|null $glue = null)

Concatenate values of a given key as a string.

intersect(TValue>|TValue> $items)

Intersect the collection with the given items.

intersectUsing(TValue>|TValue> $items, callable $callback)

Intersect the collection with the given items, using the callback.

intersectAssoc(TValue>|TValue> $items)

Intersect the collection with the given items with additional index check.

intersectAssocUsing(TValue>|TValue> $items, callable $callback)

Intersect the collection with the given items with additional index check, using the callback.

intersectByKeys(TValue>|TValue> $items)

Intersect the collection with the given items by key.

bool
isEmpty()

Determine if the collection is empty or not.

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.

static<int, mixed>
pluck(string|array<array-key, string> $value, string|null $key = null)

Get the values of a given key.

TMapValue>
map(callable $callback)

Run a map over each of the items.

TMapToDictionaryValue>>
mapToDictionary(callable $callback)

Run a dictionary map over the items.

TMapWithKeysValue>
mapWithKeys(callable $callback)

Run an associative map over each of the items.

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.

union(TValue>|TValue> $items)

Union the collection with the given items.

nth(int $step, int $offset = 0)

Create a new collection consisting of every n-th element.

only(TKey>|TKey>|string $keys)

Get the items with the specified keys.

TValue>|TValue|null
pop(int $count = 1)

Get and remove the last N items from the collection.

$this
prepend(TValue $value, TKey $key = null)

Push an item onto the beginning of the collection.

$this
push(TValue ...$values)

Push one or more items onto the end of the collection.

concat(TValue> $source)

Push all of the given items onto the collection.

TValue|TPullDefault
pull(TKey $key, TPullDefault|TPullDefault $default = null)

Get and remove an item from the collection.

$this
put(TKey $key, TValue $value)

Put an item in the collection by key.

TValue>|TValue
random(int|null $number = null)

Get one or a specified number of items randomly from the collection.

replace(TValue>|TValue> $items)

Replace the collection items with the given items.

replaceRecursive(TValue>|TValue> $items)

Recursively replace the collection items with the given items.

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>|TValue|null
shift(int $count = 1)

Get and remove the first N items from the collection.

shuffle(int|null $seed = null)

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.

skip(int $count)

Skip the first {$count} items.

skipUntil(TValue|TKey): bool $value)

Skip items in the collection until the given condition is met.

skipWhile(TValue|TKey): bool $value)

Skip items in the collection while the given condition is met.

slice(int $offset, int|null $length = null)

Slice the underlying collection array.

static<int, static>
split(int $numberOfGroups)

Split a collection into a certain number of groups.

static<int, static>
splitIn(int $numberOfGroups)

Split a collection into a certain number of groups, and fill the first groups completely.

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.

sort(TValue): int|null|int $callback = null)

Sort through each item with a callback.

sortDesc(int $options = SORT_REGULAR)

Sort items in descending order.

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.

sortByMany(array $comparisons = [])

Sort the collection using multiple comparisons.

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.

sortKeys(int $options = SORT_REGULAR, bool $descending = false)

Sort the collection keys.

sortKeysDesc(int $options = SORT_REGULAR)

Sort the collection keys in descending order.

sortKeysUsing(callable $callback)

Sort the collection keys using a callback.

splice(int $offset, int|null $length = null, TValue> $replacement = [])

Splice a portion of the underlying collection array.

take(int $limit)

Take the first or last {$limit} items.

takeUntil(TValue|TKey): bool $value)

Take items in the collection until the given condition is met.

takeWhile(TValue|TKey): bool $value)

Take items in the collection while the given condition is met.

$this
transform(callable $callback)

Transform each item in the collection using a callback.

undot()

Convert a flatten "dot" notation array into an expanded array.

TValue>
values()

Reset the keys on the underlying array.

TValue|TZipValue>>
zip(TZipValue>|TZipValue> $items)

Zip the collection together with one or more arrays.

TValue|TPadValue>
pad(int $size, TPadValue $value)

Pad collection to the specified length with a value.

getIterator()

Get an iterator for the items.

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.

$this
add(TValue $item)

Add an item to the collection.

TValue>
toBase()

Get a base Support collection instance from this collection.

bool
offsetExists(TKey $key)

Determine if an item exists at an offset.

mixed
offsetGet(TKey $key)

Get an item at a given offset.

void
offsetSet(TKey|null $key, TValue $value)

Set the item at a given offset.

void
offsetUnset(TKey $key)

Unset the item at a given offset.

Details

$this|TWhenReturnType when(TWhenParameter|TWhenParameter|null $value = null, callable|null $callback = null, callable|null $default = null)

Apply the callback if the given "value" is (or resolves to) truthy.

Parameters

TWhenParameter|TWhenParameter|null $value
callable|null $callback
callable|null $default

Return Value

$this|TWhenReturnType

$this|TUnlessReturnType unless(TUnlessParameter|TUnlessParameter|null $value = null, callable|null $callback = null, callable|null $default = null)

Apply the callback if the given "value" is (or resolves to) falsy.

Parameters

TUnlessParameter|TUnlessParameter|null $value
callable|null $callback
callable|null $default

Return Value

$this|TUnlessReturnType

static TMakeValue> make(TMakeValue>|TMakeValue>|null $items = [])

Create a new collection instance if the value isn't one already.

Parameters

TMakeValue>|TMakeValue>|null $items

Return Value

TMakeValue>

static TWrapValue> wrap(TWrapValue>|TWrapValue $value)

Wrap the given value in a collection if applicable.

Parameters

TWrapValue>|TWrapValue $value

Return Value

TWrapValue>

static TUnwrapValue> unwrap(TUnwrapValue>|TUnwrapValue> $value)

Get the underlying items from the given collection if applicable.

Parameters

TUnwrapValue>|TUnwrapValue> $value

Return Value

TUnwrapValue>

static EnumeratesValues empty()

Create a new instance with no items.

Return Value

EnumeratesValues

static TTimesValue> times(int $number, callable|null $callback = null)

Create a new collection by invoking the callback a given amount of times.

Parameters

int $number
callable|null $callback

Return Value

TTimesValue>

float|int|null average(TValue): float|int)|string|null $callback = null)

Alias for the "avg" method.

Parameters

TValue): float|int)|string|null $callback

Return Value

float|int|null

bool some(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)

Alias for the "contains" method.

Parameters

TKey): bool|TValue|string $key
mixed $operator
mixed $value

Return Value

bool

never dd(mixed ...$args)

Dump the items and end the script.

Parameters

mixed ...$args

Return Value

never

$this dump()

Dump the items.

Return Value

$this

$this each(callable $callback)

Execute a callback over each item.

Parameters

callable $callback

Return Value

$this

eachSpread(callable $callback)

Execute a callback over each nested chunk of items.

Parameters

callable $callback

bool every(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)

Determine if all items pass the given truth test.

Parameters

TKey): bool|TValue|string $key
mixed $operator
mixed $value

Return Value

bool

TValue|null firstWhere(callable|string $key, mixed $operator = null, mixed $value = null)

Get the first item by the given key value pair.

Parameters

callable|string $key
mixed $operator
mixed $value

Return Value

TValue|null

mixed value(string $key, mixed $default = null)

Get a single key's value from the first matching item in the collection.

Parameters

string $key
mixed $default

Return Value

mixed

bool isNotEmpty()

Determine if the collection is not empty.

Return Value

bool

TMapSpreadValue> mapSpread(callable $callback)

Run a map over each nested chunk of items.

Parameters

callable $callback

Return Value

TMapSpreadValue>

TMapToGroupsValue>> mapToGroups(callable $callback)

Run a grouping map over the items.

The callback should return an associative array with a single key/value pair.

Parameters

callable $callback

Return Value

TMapToGroupsValue>>

TFlatMapValue> flatMap(callable $callback)

Map a collection and flatten the result by a single level.

Parameters

callable $callback

Return Value

TFlatMapValue>

TMapIntoValue> mapInto(TMapIntoValue> $class)

Map the values into a new class.

Parameters

TMapIntoValue> $class

Return Value

TMapIntoValue>

mixed min(TValue): mixed|string|null $callback = null)

Get the min value of a given key.

Parameters

TValue): mixed|string|null $callback

Return Value

mixed

mixed max(TValue): mixed|string|null $callback = null)

Get the max value of a given key.

Parameters

TValue): mixed|string|null $callback

Return Value

mixed

EnumeratesValues forPage(int $page, int $perPage)

"Paginate" the collection by slicing it into a smaller collection.

Parameters

int $page
int $perPage

Return Value

EnumeratesValues

TValue>> partition(TKey): bool|TValue|string $key, TValue|string|null $operator = null, TValue|null $value = null)

Partition the collection into two arrays using the given callback or key.

Parameters

TKey): bool|TValue|string $key
TValue|string|null $operator
TValue|null $value

Return Value

TValue>>

mixed sum(TValue): mixed|string|null $callback = null)

Get the sum of the given values.

Parameters

TValue): mixed|string|null $callback

Return Value

mixed

$this|TWhenEmptyReturnType whenEmpty(callable $callback, callable|null $default = null)

Apply the callback if the collection is empty.

Parameters

callable $callback
callable|null $default

Return Value

$this|TWhenEmptyReturnType

$this|TWhenNotEmptyReturnType whenNotEmpty(callable $callback, callable|null $default = null)

Apply the callback if the collection is not empty.

Parameters

callable $callback
callable|null $default

Return Value

$this|TWhenNotEmptyReturnType

$this|TUnlessEmptyReturnType unlessEmpty(callable $callback, callable|null $default = null)

Apply the callback unless the collection is empty.

Parameters

callable $callback
callable|null $default

Return Value

$this|TUnlessEmptyReturnType

$this|TUnlessNotEmptyReturnType unlessNotEmpty(callable $callback, callable|null $default = null)

Apply the callback unless the collection is not empty.

Parameters

callable $callback
callable|null $default

Return Value

$this|TUnlessNotEmptyReturnType

EnumeratesValues where(callable|string $key, mixed $operator = null, mixed $value = null)

Filter items by the given key value pair.

Parameters

callable|string $key
mixed $operator
mixed $value

Return Value

EnumeratesValues

EnumeratesValues whereNull(string|null $key = null)

Filter items where the value for the given key is null.

Parameters

string|null $key

Return Value

EnumeratesValues

EnumeratesValues whereNotNull(string|null $key = null)

Filter items where the value for the given key is not null.

Parameters

string|null $key

Return Value

EnumeratesValues

EnumeratesValues whereStrict(string $key, mixed $value)

Filter items by the given key value pair using strict comparison.

Parameters

string $key
mixed $value

Return Value

EnumeratesValues

EnumeratesValues whereIn(string $key, Arrayable|iterable $values, bool $strict = false)

Filter items by the given key value pair.

Parameters

string $key
Arrayable|iterable $values
bool $strict

Return Value

EnumeratesValues

EnumeratesValues whereInStrict(string $key, Arrayable|iterable $values)

Filter items by the given key value pair using strict comparison.

Parameters

string $key
Arrayable|iterable $values

Return Value

EnumeratesValues

EnumeratesValues whereBetween(string $key, Arrayable|iterable $values)

Filter items such that the value of the given key is between the given values.

Parameters

string $key
Arrayable|iterable $values

Return Value

EnumeratesValues

EnumeratesValues whereNotBetween(string $key, Arrayable|iterable $values)

Filter items such that the value of the given key is not between the given values.

Parameters

string $key
Arrayable|iterable $values

Return Value

EnumeratesValues

EnumeratesValues whereNotIn(string $key, Arrayable|iterable $values, bool $strict = false)

Filter items by the given key value pair.

Parameters

string $key
Arrayable|iterable $values
bool $strict

Return Value

EnumeratesValues

EnumeratesValues whereNotInStrict(string $key, Arrayable|iterable $values)

Filter items by the given key value pair using strict comparison.

Parameters

string $key
Arrayable|iterable $values

Return Value

EnumeratesValues

TWhereInstanceOf> whereInstanceOf(TWhereInstanceOf>|TWhereInstanceOf>> $type)

Filter the items, removing any items that don't match the given type(s).

Parameters

TWhereInstanceOf>|TWhereInstanceOf>> $type

Return Value

TWhereInstanceOf>

TPipeReturnType pipe(callable $callback)

Pass the collection to the given callback and return the result.

Parameters

callable $callback

Return Value

TPipeReturnType

mixed pipeInto(class-string $class)

Pass the collection into a new class.

Parameters

class-string $class

Return Value

mixed

mixed pipeThrough(callable[] $callbacks)

Pass the collection through a series of callable pipes and return the result.

Parameters

callable[] $callbacks

Return Value

mixed

TReduceReturnType reduce(callable $callback, TReduceInitial $initial = null)

Reduce the collection to a single value.

Parameters

callable $callback
TReduceInitial $initial

Return Value

TReduceReturnType

array reduceSpread(callable $callback, mixed ...$initial)

Reduce the collection to multiple aggregate values.

Parameters

callable $callback
mixed ...$initial

Return Value

array

Exceptions

UnexpectedValueException

EnumeratesValues reject(TKey): bool|bool|TValue $callback = true)

Create a collection of all elements that do not pass a given truth test.

Parameters

TKey): bool|bool|TValue $callback

Return Value

EnumeratesValues

$this tap(callable $callback)

Pass the collection to the given callback and then return it.

Parameters

callable $callback

Return Value

$this

Enumerable unique(TKey): mixed|string|null $key = null, bool $strict = false)

Return only unique items from the collection array.

Parameters

TKey): mixed|string|null $key
bool $strict

Return Value

Enumerable

EnumeratesValues uniqueStrict(TKey): mixed|string|null $key = null)

Return only unique items from the collection array using strict comparison.

Parameters

TKey): mixed|string|null $key

Return Value

EnumeratesValues

TValue> collect()

Collect the values into a collection.

Return Value

TValue>

TKey, mixed> toArray()

Get the collection of items as a plain array.

Return Value

TKey, mixed>

array jsonSerialize()

Convert the object into something JSON serializable.

Return Value

array

string toJson(int $options = 0)

Get the collection of items as JSON.

Parameters

int $options

Return Value

string

CachingIterator getCachingIterator(int $flags = CachingIterator::CALL_TOSTRING)

Get a CachingIterator instance.

Parameters

int $flags

Return Value

CachingIterator

string __toString()

Convert the collection to its string representation.

Return Value

string

$this escapeWhenCastingToString(bool $escape = true)

Indicate that the model's string representation should be escaped when __toString is invoked.

Parameters

bool $escape

Return Value

$this

static void proxy(string $method)

Add a method to the list of proxied methods.

Parameters

string $method

Return Value

void

mixed __get(string $key)

Dynamically access collection proxies.

Parameters

string $key

Return Value

mixed

Exceptions

Exception

protected TValue> getArrayableItems(mixed $items)

Results array of items from Collection or Arrayable.

Parameters

mixed $items

Return Value

TValue>

protected Closure operatorForWhere(callable|string $key, string|null $operator = null, mixed $value = null)

Get an operator checker callback.

Parameters

callable|string $key
string|null $operator
mixed $value

Return Value

Closure

protected bool useAsCallable(mixed $value)

Determine if the given value is callable, but not a string.

Parameters

mixed $value

Return Value

bool

protected callable valueRetriever(callable|string|null $value)

Get a value retrieving callback.

Parameters

callable|string|null $value

Return Value

callable

protected Closure(mixed): bool equality(mixed $value)

Make a function to check an item's equality.

Parameters

mixed $value

Return Value

Closure(mixed): bool

protected Closure negate(Closure $callback)

Make a function using another function, by negating its result.

Parameters

Closure $callback

Return Value

Closure

protected TValue identity()

Make a function that returns what's passed to it.

Return Value

TValue

static void macro(string $name, object|callable $macro)

Register a custom macro.

Parameters

string $name
object|callable $macro

Return Value

void

static void mixin(object $mixin, bool $replace = true)

Mix another object into the class.

Parameters

object $mixin
bool $replace

Return Value

void

Exceptions

ReflectionException

static bool hasMacro(string $name)

Checks if macro is registered.

Parameters

string $name

Return Value

bool

static void flushMacros()

Flush the existing macros.

Return Value

void

static mixed __callStatic(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

mixed __call(string $method, array $parameters)

Dynamically handle calls to the class.

Parameters

string $method
array $parameters

Return Value

mixed

Exceptions

BadMethodCallException

void __construct(TValue>|TValue>|null $items = [])

Create a new collection.

Parameters

TValue>|TValue>|null $items

Return Value

void

static Enumerable range(int $from, int $to)

Create a collection with the given range.

Parameters

int $from
int $to

Return Value

Enumerable

array all()

Get all of the items in the collection.

Return Value

array

TValue> lazy()

Get a lazy collection for the items in this collection.

Return Value

TValue>

float|int|null avg(TValue): float|int)|string|null $callback = null)

Get the average value of a given key.

Parameters

TValue): float|int)|string|null $callback

Return Value

float|int|null

float|int|null median(string|array<array-key, string>|null $key = null)

Get the median of a given key.

Parameters

string|array<array-key, string>|null $key

Return Value

float|int|null

array<int, float|int>|null mode(string|array<array-key, string>|null $key = null)

Get the mode of a given key.

Parameters

string|array<array-key, string>|null $key

Return Value

array<int, float|int>|null

static<int, mixed> collapse()

Collapse the collection of items into a single array.

Return Value

static<int, mixed>

bool contains(TKey): bool|TValue|string $key, mixed $operator = null, mixed $value = null)

Determine if an item exists in the collection.

Parameters

TKey): bool|TValue|string $key
mixed $operator
mixed $value

Return Value

bool

bool containsStrict(TValue): bool|TValue|(array-key) $key, TValue|null $value = null)

Determine if an item exists, using strict comparison.

Parameters

TValue): bool|TValue|(array-key) $key
TValue|null $value

Return Value

bool

bool doesntContain(mixed $key, mixed $operator = null, mixed $value = null)

Determine if an item is not contained in the collection.

Parameters

mixed $key
mixed $operator
mixed $value

Return Value

bool

TValue|TCrossJoinValue>> crossJoin(TCrossJoinValue>|TCrossJoinValue> ...$lists)

Cross join with the given lists, returning all possible permutations.

Parameters

TCrossJoinValue>|TCrossJoinValue> ...$lists

Return Value

TValue|TCrossJoinValue>>

Enumerable diff(TValue>|TValue> $items)

Get the items in the collection that are not present in the given items.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

Enumerable diffUsing(TValue>|TValue> $items, callable $callback)

Get the items in the collection that are not present in the given items, using the callback.

Parameters

TValue>|TValue> $items
callable $callback

Return Value

Enumerable

Enumerable diffAssoc(TValue>|TValue> $items)

Get the items in the collection whose keys and values are not present in the given items.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

Enumerable diffAssocUsing(TValue>|TValue> $items, callable $callback)

Get the items in the collection whose keys and values are not present in the given items, using the callback.

Parameters

TValue>|TValue> $items
callable $callback

Return Value

Enumerable

Enumerable diffKeys(TValue>|TValue> $items)

Get the items in the collection whose keys are not present in the given items.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

Enumerable diffKeysUsing(TValue>|TValue> $items, callable $callback)

Get the items in the collection whose keys are not present in the given items, using the callback.

Parameters

TValue>|TValue> $items
callable $callback

Return Value

Enumerable

Enumerable duplicates(TValue): bool|string|null $callback = null, bool $strict = false)

Retrieve duplicate items from the collection.

Parameters

TValue): bool|string|null $callback
bool $strict

Return Value

Enumerable

Enumerable duplicatesStrict(TValue): bool|string|null $callback = null)

Retrieve duplicate items from the collection using strict comparison.

Parameters

TValue): bool|string|null $callback

Return Value

Enumerable

protected TValue): bool duplicateComparator(bool $strict)

Get the comparison function to detect duplicates.

Parameters

bool $strict

Return Value

TValue): bool

Enumerable except(TKey>|TKey> $keys)

Get all items except for those with the specified keys.

Parameters

TKey>|TKey> $keys

Return Value

Enumerable

Enumerable filter(callable|null $callback = null)

Run a filter over each of the items.

Parameters

callable|null $callback

Return Value

Enumerable

TValue|TFirstDefault first(callable|null $callback = null, TFirstDefault|TFirstDefault $default = null)

Get the first item from the collection passing the given truth test.

Parameters

callable|null $callback
TFirstDefault|TFirstDefault $default

Return Value

TValue|TFirstDefault

Enumerable flatten(int $depth = INF)

Get a flattened array of the items in the collection.

Parameters

int $depth

Return Value

Enumerable

TKey> flip()

Flip the items in the collection.

Return Value

TKey>

$this forget(TKey|TKey> $keys)

Remove an item from the collection by key.

Parameters

TKey|TKey> $keys

Return Value

$this

TValue|TGetDefault get(TKey $key, TGetDefault|TGetDefault $default = null)

Get an item from the collection by key.

Parameters

TKey $key
TGetDefault|TGetDefault $default

Return Value

TValue|TGetDefault

mixed getOrPut(mixed $key, mixed $value)

Get an item from the collection by key or add it to collection if it does not exist.

Parameters

mixed $key
mixed $value

Return Value

mixed

TValue>> groupBy(TKey): array-key|array|string $groupBy, bool $preserveKeys = false)

Group an associative array by a field or using a callback.

Parameters

TKey): array-key|array|string $groupBy
bool $preserveKeys

Return Value

TValue>>

TValue> keyBy(TKey): array-key|array|string $keyBy)

Key an associative array by a field or using a callback.

Parameters

TKey): array-key|array|string $keyBy

Return Value

TValue>

bool has(TKey|TKey> $key)

Determine if an item exists in the collection by key.

Parameters

TKey|TKey> $key

Return Value

bool

bool hasAny(mixed $key)

Determine if any of the keys exist in the collection.

Parameters

mixed $key

Return Value

bool

string implode(string $value, string|null $glue = null)

Concatenate values of a given key as a string.

Parameters

string $value
string|null $glue

Return Value

string

Enumerable intersect(TValue>|TValue> $items)

Intersect the collection with the given items.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

Collection intersectUsing(TValue>|TValue> $items, callable $callback)

Intersect the collection with the given items, using the callback.

Parameters

TValue>|TValue> $items
callable $callback

Return Value

Collection

Collection intersectAssoc(TValue>|TValue> $items)

Intersect the collection with the given items with additional index check.

Parameters

TValue>|TValue> $items

Return Value

Collection

Collection intersectAssocUsing(TValue>|TValue> $items, callable $callback)

Intersect the collection with the given items with additional index check, using the callback.

Parameters

TValue>|TValue> $items
callable $callback

Return Value

Collection

Enumerable intersectByKeys(TValue>|TValue> $items)

Intersect the collection with the given items by key.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

bool isEmpty()

Determine if the collection is empty or not.

Return Value

bool

bool containsOneItem()

Determine if the collection contains a single item.

Return Value

bool

string join(string $glue, string $finalGlue = '')

Join all items from the collection using a string. The final items can use a separate glue string.

Parameters

string $glue
string $finalGlue

Return Value

string

TKey> keys()

Get the keys of the collection items.

Return Value

TKey>

TValue|TLastDefault last(callable|null $callback = null, TLastDefault|TLastDefault $default = null)

Get the last item from the collection.

Parameters

callable|null $callback
TLastDefault|TLastDefault $default

Return Value

TValue|TLastDefault

static<int, mixed> pluck(string|array<array-key, string> $value, string|null $key = null)

Get the values of a given key.

Parameters

string|array<array-key, string> $value
string|null $key

Return Value

static<int, mixed>

TMapValue> map(callable $callback)

Run a map over each of the items.

Parameters

callable $callback

Return Value

TMapValue>

TMapToDictionaryValue>> mapToDictionary(callable $callback)

Run a dictionary map over the items.

The callback should return an associative array with a single key/value pair.

Parameters

callable $callback

Return Value

TMapToDictionaryValue>>

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.

Parameters

callable $callback

Return Value

TMapWithKeysValue>

Enumerable merge(TValue>|TValue> $items)

Merge the collection with the given items.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

TValue|TMergeRecursiveValue> mergeRecursive(TMergeRecursiveValue>|TMergeRecursiveValue> $items)

Recursively merge the collection with the given items.

Parameters

TMergeRecursiveValue>|TMergeRecursiveValue> $items

Return Value

TValue|TMergeRecursiveValue>

TCombineValue> combine(TCombineValue>|TCombineValue> $values)

Create a collection by using this collection for keys and another for its values.

Parameters

TCombineValue>|TCombineValue> $values

Return Value

TCombineValue>

Enumerable union(TValue>|TValue> $items)

Union the collection with the given items.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

Enumerable nth(int $step, int $offset = 0)

Create a new collection consisting of every n-th element.

Parameters

int $step
int $offset

Return Value

Enumerable

Enumerable only(TKey>|TKey>|string $keys)

Get the items with the specified keys.

Parameters

TKey>|TKey>|string $keys

Return Value

Enumerable

TValue>|TValue|null pop(int $count = 1)

Get and remove the last N items from the collection.

Parameters

int $count

Return Value

TValue>|TValue|null

$this prepend(TValue $value, TKey $key = null)

Push an item onto the beginning of the collection.

Parameters

TValue $value
TKey $key

Return Value

$this

$this push(TValue ...$values)

Push one or more items onto the end of the collection.

Parameters

TValue ...$values

Return Value

$this

Enumerable concat(TValue> $source)

Push all of the given items onto the collection.

Parameters

TValue> $source

Return Value

Enumerable

TValue|TPullDefault pull(TKey $key, TPullDefault|TPullDefault $default = null)

Get and remove an item from the collection.

Parameters

TKey $key
TPullDefault|TPullDefault $default

Return Value

TValue|TPullDefault

$this put(TKey $key, TValue $value)

Put an item in the collection by key.

Parameters

TKey $key
TValue $value

Return Value

$this

TValue>|TValue random(int|null $number = null)

Get one or a specified number of items randomly from the collection.

Parameters

int|null $number

Return Value

TValue>|TValue

Exceptions

InvalidArgumentException

Enumerable replace(TValue>|TValue> $items)

Replace the collection items with the given items.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

Enumerable replaceRecursive(TValue>|TValue> $items)

Recursively replace the collection items with the given items.

Parameters

TValue>|TValue> $items

Return Value

Enumerable

Enumerable reverse()

Reverse items order.

Return Value

Enumerable

Search the collection for a given value and return the corresponding key if successful.

Parameters

TValue|TKey): bool $value
bool $strict

Return Value

TKey|bool

TValue>|TValue|null shift(int $count = 1)

Get and remove the first N items from the collection.

Parameters

int $count

Return Value

TValue>|TValue|null

Enumerable shuffle(int|null $seed = null)

Shuffle the items in the collection.

Parameters

int|null $seed

Return Value

Enumerable

static<int, static> sliding(int $size = 2, int $step = 1)

Create chunks representing a "sliding window" view of the items in the collection.

Parameters

int $size
int $step

Return Value

static<int, static>

Enumerable skip(int $count)

Skip the first {$count} items.

Parameters

int $count

Return Value

Enumerable

Enumerable skipUntil(TValue|TKey): bool $value)

Skip items in the collection until the given condition is met.

Parameters

TValue|TKey): bool $value

Return Value

Enumerable

Enumerable skipWhile(TValue|TKey): bool $value)

Skip items in the collection while the given condition is met.

Parameters

TValue|TKey): bool $value

Return Value

Enumerable

Enumerable slice(int $offset, int|null $length = null)

Slice the underlying collection array.

Parameters

int $offset
int|null $length

Return Value

Enumerable

static<int, static> split(int $numberOfGroups)

Split a collection into a certain number of groups.

Parameters

int $numberOfGroups

Return Value

static<int, static>

static<int, static> splitIn(int $numberOfGroups)

Split a collection into a certain number of groups, and fill the first groups completely.

Parameters

int $numberOfGroups

Return Value

static<int, static>

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.

Parameters

TKey): bool|string $key
mixed $operator
mixed $value

Return Value

TValue

Exceptions

ItemNotFoundException
MultipleItemsFoundException

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.

Parameters

TKey): bool|string $key
mixed $operator
mixed $value

Return Value

TValue

Exceptions

ItemNotFoundException

static<int, static> chunk(int $size)

Chunk the collection into chunks of the given size.

Parameters

int $size

Return Value

static<int, static>

TValue>> chunkWhile(callable $callback)

Chunk the collection into chunks with a callback.

Parameters

callable $callback

Return Value

TValue>>

Enumerable sort(TValue): int|null|int $callback = null)

Sort through each item with a callback.

Parameters

TValue): int|null|int $callback

Return Value

Enumerable

Enumerable sortDesc(int $options = SORT_REGULAR)

Sort items in descending order.

Parameters

int $options

Return Value

Enumerable

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.

Parameters

TValue): mixed|TKey): mixed|string|array{string, string}>|TKey): mixed|string $callback
int $options
bool $descending

Return Value

Enumerable

protected Collection sortByMany(array $comparisons = [])

Sort the collection using multiple comparisons.

Parameters

array $comparisons

Return Value

Collection

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.

Parameters

TValue): mixed|TKey): mixed|string|array{string, string}>|TKey): mixed|string $callback
int $options

Return Value

Enumerable

Enumerable sortKeys(int $options = SORT_REGULAR, bool $descending = false)

Sort the collection keys.

Parameters

int $options
bool $descending

Return Value

Enumerable

Enumerable sortKeysDesc(int $options = SORT_REGULAR)

Sort the collection keys in descending order.

Parameters

int $options

Return Value

Enumerable

Enumerable sortKeysUsing(callable $callback)

Sort the collection keys using a callback.

Parameters

callable $callback

Return Value

Enumerable

Collection splice(int $offset, int|null $length = null, TValue> $replacement = [])

Splice a portion of the underlying collection array.

Parameters

int $offset
int|null $length
TValue> $replacement

Return Value

Collection

Enumerable take(int $limit)

Take the first or last {$limit} items.

Parameters

int $limit

Return Value

Enumerable

Enumerable takeUntil(TValue|TKey): bool $value)

Take items in the collection until the given condition is met.

Parameters

TValue|TKey): bool $value

Return Value

Enumerable

Enumerable takeWhile(TValue|TKey): bool $value)

Take items in the collection while the given condition is met.

Parameters

TValue|TKey): bool $value

Return Value

Enumerable

$this transform(callable $callback)

Transform each item in the collection using a callback.

Parameters

callable $callback

Return Value

$this

Enumerable undot()

Convert a flatten "dot" notation array into an expanded array.

Return Value

Enumerable

TValue> values()

Reset the keys on the underlying array.

Return Value

TValue>

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]]

Parameters

TZipValue>|TZipValue> $items

Return Value

TValue|TZipValue>>

TValue|TPadValue> pad(int $size, TPadValue $value)

Pad collection to the specified length with a value.

Parameters

int $size
TPadValue $value

Return Value

TValue|TPadValue>

Traversable getIterator()

Get an iterator for the items.

Return Value

Traversable

int count()

Count the number of items in the collection.

Return Value

int

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.

Parameters

TKey): array-key|string|null $countBy

Return Value

static<array-key, int>

$this add(TValue $item)

Add an item to the collection.

Parameters

TValue $item

Return Value

$this

TValue> toBase()

Get a base Support collection instance from this collection.

Return Value

TValue>

bool offsetExists(TKey $key)

Determine if an item exists at an offset.

Parameters

TKey $key

Return Value

bool

mixed offsetGet(TKey $key)

Get an item at a given offset.

Parameters

TKey $key

Return Value

mixed

void offsetSet(TKey|null $key, TValue $value)

Set the item at a given offset.

Parameters

TKey|null $key
TValue $value

Return Value

void

void offsetUnset(TKey $key)

Unset the item at a given offset.

Parameters

TKey $key

Return Value

void