Skip to main content
Version: 1.x

Collections

Mantle includes Laravel's collections package with support for all of its methods and with some special customizations to make it easier to work with WordPress. For example, you can pass a WP_Query object to the collect helper function and it will automatically convert it to a collection of WP_Post objects.

Usage

You can use the collect helper function to create a new collection from an array or an object. You can also use the collect method on any collection instance to create a new collection from the items in the original collection.

use function Mantle\Support\Helpers\collect;

$collection = collect( [ 1, 2, 3 ] );

You can then use any of the methods available on the collection instance to manipulate the items in the collection.

use function Mantle\Support\Helpers\collect;

$collection = collect( [ 1, 2, 3 ] )->map( function( $item ) {
return $item * 2;
} );

Collections can be treated like arrays, so you can use array accessors to get items from the collection.

use function Mantle\Support\Helpers\collect;

$collection = collect( [ 1, 2, 3 ] );

$item = $collection[0]; // 1

Available Methods

add

The add method adds an item to the collection.

$collection = collect( [ 1, 2, 3 ] )->add( 4 );

after

Get the item after the given item in the collection. You can pass a value or a callback to determine the target item. Returns null if the item is the last in the collection or not found.

$collection = collect( [ 'a', 'b', 'c', 'd' ] );
$after = $collection->after( 'b' ); // 'c'

$after = $collection->after( function( $item ) {
return $item === 'c';
} ); // 'd'

all

The all method gets all of the items in the collection.

$items = collect( [ 1, 2, 3 ] )->all();

avg

Get the average value of a given key.

$average = collect( [ 1, 2, 3 ] )->average();

$average = collect( [
[ 'name' => 'John', 'age' => 30 ],
[ 'name' => 'Jane', 'age' => 25 ],
] )->average( 'age' );

average

Alias for the avg method.

before

Get the item before the given item in the collection. You can pass a value or a callback to determine the target item. Returns null if the item is the first in the collection or not found.

$collection = collect( [ 'a', 'b', 'c', 'd' ] );
$before = $collection->before( 'c' ); // 'b'

$before = $collection->before( function( $item ) {
return $item === 'b';
} ); // 'a'

chunk

Chunk the collection into smaller collections of a given size.

$chunks = collect( [ 1, 2, 3, 4, 5 ] )->chunk( 2 );
// [[1, 2], [3, 4], [5]]

chunk_while

Chunk the collection into groups as long as the given callback returns true. Each group will contain consecutive items until the callback returns false.

$chunks = collect( [1, 2, 3, 4, 5] )->chunk_while( function( $value, $key, $chunk ) {
return $value - $chunk->last() <= 1;
} );
// [[1, 2, 3], [4, 5]]

collapse

Collapse the collection of arrays into a single, flat collection.

$collection = collect( [ [ 1, 2, 3 ], [ 4, 5, 6 ] ] )->collapse();

// [1, 2, 3, 4, 5, 6]

collect

Convert the collection to a base Mantle collection instance. Useful if you are working with a subclass and want a plain collection.

$base = $collection->collect();

combine

Combine the values of the collection with the values of another array or collection.

$collection = collect( [ 'name', 'age' ] )->combine( [ 'John', 30 ] );
// ['name' => 'John', 'age' => 30]

concat

Concatenate values of the given array or collection to the collection.

$collection = collect( [ 1, 2, 3 ] )->concat( [ 4, 5, 6 ] );
// [1, 2, 3, 4, 5, 6]

contains

Determine if the collection contains a given item.

$contains = collect( [ 1, 2, 3 ] )->contains( 2 ); // true

contains_one_item

Determine if the collection contains only one item.

$containsOneItem = collect( [ 1 ] )->contains_one_item(); // true

contains_strict

Determine if the collection contains a given key / value pair.

$contains = collect( [ 'name' => 'John' ] )->contains_strict( 'name', 'John' ); // true

count

Get the number of items in the collection.

$count = collect( [ 1, 2, 3 ] )->count(); // 3

count_by

Count the occurrences of values in the collection.

$counts = collect( [ 1, 2, 2, 3, 3, 3 ] )->count_by();
// [1 => 1, 2 => 2, 3 => 3]

cross_join

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

$collection = collect( [ 1, 2 ] )->cross_join( [ 'a', 'b' ] );

dd

Dump the collection and end the script execution.

collect( [ 1, 2, 3 ] )->dd();

diff

Compare the collection against another item or items using strict comparison.

$diff = collect( [ 1, 2, 3 ] )->diff( [ 2, 3, 4 ] );
// [0 => 1]

diff_assoc

Diff the collection with the given items, key and value-wise.

$diff = collect( [ 'name' => 'John' ] )->diff_assoc( [ 'name' => 'Jane' ] );
// ['name' => 'John']

diff_assoc_using

Diff the collection with the given items, using a callback to compute the difference.

$diff = collect( [ 'name' => 'John' ] )->diff_assoc_using( [ 'name' => 'Jane' ], function( $a, $b ) {
return $a === $b;
} );
// ['name' => 'John']

diff_keys

Diff the collection with the given items, key-wise.

$diff = collect( [ 'name' => 'John' ] )->diff_keys( [ 'name' => 'Jane' ] );

doesnt_contain

Determine if the collection does not contain a given key / value pair.

$doesntContain = collect( [ 'name' => 'John' ] )->doesnt_contain( 'name', 'Jane' ); // true

dump

Dump the collection.

collect( [ 1, 2, 3 ] )->dump();

duplicates

Get the items in the collection that have duplicate values.

$duplicates = collect( [ 1, 2, 2, 3, 3, 3 ] )->duplicates();
// [2, 3]

duplicates_strict

Get the items in the collection that have duplicate values.

$duplicates = collect( [ 1, 2, 2, 3, 3, 3 ] )->duplicates_strict();
// [2, 3]

each

Iterate over the items in the collection.

collect( [ 1, 2, 3 ] )->each( function( $item ) {
// ...
} );

each_spread

Iterate over the collection's items, passing each nested item value into the given callback:

collect( [ [ 'John', 30 ], [ 'Jane', 25 ] ] )->each_spread( function( $name, $age ) {
// ...
} );

empty

Create a new, empty collection instance.

$empty = Collection::empty();

every

Determine if all items in the collection pass the given truth test.

$every = collect( [ 1, 2, 3 ] )->every( function( $item ) {
return $item > 0;
} );

except

Get all items except for those with the specified keys.

$collection = collect( [ 'name' => 'John', 'age' => 30 ] )->except( 'age' );
// ['name' => 'John']

filter

Filter the items in the collection using the given callback.

$collection = collect( [ 1, 2, 3 ] )->filter( function( $item ) {
return $item > 1;
} );

first

Get the first item from the collection.

$item = collect( [ 1, 2, 3 ] )->first();

first_or_fail

Get the first item in the collection that passes the given test, or throw an exception if no matching item is found.

use Mantle\Support\Item_Not_Found_Exception;

try {
$item = collect( [1, 2, 3] )->first_or_fail( fn( $item ) => $item > 2 );
} catch ( Item_Not_Found_Exception $e ) {
// Handle not found
}

first_where

Get the first item from the collection where the given key / value pair is true.

$item = collect( [ 'name' => 'John', 'age' => 30 ] )->first_where( 'age', '>', 25 );

flat_map

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

$collection = collect( [ [ 1, 2 ], [ 3, 4 ] ] )->flat_map( function( array $values ) {
return array_map( function( $value ) {
return $value * 2;
}, $values );
} );

flatten

Flatten a multi-dimensional collection into a single dimension.

$collection = collect( [ [ 1, 2 ], [ 3, 4 ] ] )->flatten();

flip

Flip the items in the collection.

$collection = collect( [ 'name' => 'John', 'age' => 30 ] )->flip();

for_page

Get a new collection containing the items for a given page.

$collection = collect( [ 1, 2, 3, 4, 5 ] )->for_page( 2, 2 );
// [3, 4]

forget

Remove an item from the collection by key.

$collection = collect( [ 'name' => 'John', 'age' => 30 ] )->forget( 'age' );

get

Get an item from the collection.

$item = collect( [ 'name' => 'John', 'age' => 30 ] )->get( 'name' );

get_caching_iterator

Get a CachingIterator instance for the collection, which can be useful for advanced iteration scenarios.

$iterator = collect( [1, 2, 3] )->get_caching_iterator();

group_by

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

$collection = collect( [
[ 'name' => 'John', 'age' => 30 ],
[ 'name' => 'Jane', 'age' => 25 ],
] )->group_by( 'age' );

has

Determine if an item exists in the collection by key.

$has = collect( [ 'name' => 'John', 'age' => 30 ] )->has( 'name' );

implode

Join the items in the collection.

$joined = collect( [ 'name', 'age' ] )->implode( ', ' );

implode_str

Join the items in the collection into a string and return a Stringable instance.

$string = collect( [ 'a', 'b', 'c' ] )->implode_str( ', ' );
// Stringable: 'a, b, c'

intersect

Intersect the collection with the given items.

... = collect( [ 1, 2, 3 ] )->intersect( [ 2, 3, 4 ] );

intersect_assoc

Intersect the collection with the given items, key and value-wise.

$intersect = collect( [ 'name' => 'John' ] )->intersect_assoc( [ 'name' => 'Jane' ] );

intersect_by_keys

Intersect the collection with the given items by key.

$intersect = collect( [ 'name' => 'John' ] )->intersect_by_keys( [ 'name' => 'Jane' ] );

is_empty

Determine if the collection is empty.

$isEmpty = collect( [] )->is_empty();

is_not_empty

Determine if the collection is not empty.

$isNotEmpty = collect( [ 1, 2, 3 ] )->is_not_empty();

join

Join the items in the collection.

$joined = collect( [ 'name', 'age' ] )->join( ', ' );

key_by

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

$collection = collect( [
[ 'name' => 'John', 'age' => 30 ],
[ 'name' => 'Jane', 'age' => 25 ],
] )->key_by( 'name' );

keys

Get the keys of the collection items.

$keys = collect( [ 'name' => 'John', 'age' => 30 ] )->keys();

last

Get the last item from the collection.

$item = collect( [ 1, 2, 3 ] )->last();

make

Create a new collection instance from the given items.

$collection = Collection::make( [1, 2, 3] );

map

Map the items in the collection to a new callback.

$collection = collect( [ 1, 2, 3 ] )->map( function( $item ) {
return $item * 2;
} );

map_into

Map the collection into a new class.

$collection = collect( [ 'John', 'Jane' ] )->map_into( User::class );

map_spread

Iterates over the collection's items, passing each nested item value into the given callback:

$collection = collect( [ [ 'John', 30 ], [ 'Jane', 25 ] ] )->map_spread( function( $name, $age ) {
return $name . ' is ' . $age . ' years old';
} );

map_to_dictionary

Map the collection to a dictionary.

$dictionary = collect( [
[
'name' => 'John',
'department' => 'Sales',
],
[
'name' => 'Jane',
'department' => 'Marketing',
],
[
'name' => 'Jack',
'department' => 'Sales',
],
] )->map_to_dictionary( function ( $item ) {
return [
$item['department'] => $item['name'],
];
} ); // [ 'Marketing' => ['John', 'Jane'], 'Sales' => ['Jack']]

You can also return false/null to skip an item.

$dictionary = collect( [
[
'name' => 'John',
'department' => 'Sales',
],
[
'name' => 'Jane',
'department' => 'Marketing',
],
[
'name' => 'Jack',
'department' => 'Sales',
],
[
'name' => 'Adam',
'department' => 'Tech',
],
]
] )->map_to_dictionary( function ( $item ) {
if ( $item['department'] === 'Sales' ) {
return false;
}

return [
$item['department'] => $item['name'],
];
} ); // ['Marketing' => ['Jane'], 'Tech' => ['Adam']]

map_to_groups

Alias to map_to_dictionary.

map_with_keys

Map the collection with the given key / value pairs.

$collection = collect( [
[
'name' => 'John',
'department' => 'Sales',
'email' => 'john@example.com',
],
[
'name' => 'Jane',
'department' => 'Marketing',
'email' => 'jane@example.com',
]
] );

$collection = $collection->map_with_keys( function( $item ) {
return [ $item['name'] => $item['email'] ];
} );

max

Get the max value of a given key.

$max = collect( [ 1, 2, 3 ] )->max();

median

Get the median value of a given key.

$median = collect( [ 1, 2, 3 ] )->median();

merge

Merge the collection with the given items.

$collection = collect( [ 'name' => 'John' ] )->merge( [ 'name' => 'Jane' ] );

merge_recursive

Merge the collection with the given items, recursively.

$collection = collect( [ 'name' => 'John' ] )->merge_recursive( [ 'name' => 'Jane' ] );

min

Get the min value of a given key.

$min = collect( [ 1, 2, 3 ] )->min();

mode

Get the mode value of a given key.

$mode = collect( [ 1, 2, 2, 3, 3, 3 ] )->mode();

nth

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

$collection = collect( [ 1, 2, 3, 4, 5, 6 ] )->nth( 2 );
// [2, 4, 6]

only

Create a new collection consisting of the given keys.

$collection = collect( [
'name' => 'John',
'department' => 'Sales',
] )->only( [ 'name' ] );

only_children

Create a new collection consisting of only keys that are children of the given keys.

$collection = collect( [
[
'name' => 'John',
'department' => 'Sales',
'email' => 'john@example.com',
],
[
'name' => 'Jane',
'department' => 'Marketing',
'email' => 'jane@example.com',
]
] );

$collection = $collection->only_children( [ 'email', 'name' ] );
// [['name' => 'John', 'email' => 'john@example.com'], ['name' => 'Jane', 'email' => 'jane@example.com']]

pad

Pad the collection to the specified size with a value.

$collection = collect( [ 1, 2, 3 ] )->pad( 5, 0 );
// [1, 2, 3, 0, 0]

partition

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

$collection = collect( [ 1, 2, 3, 4, 5 ] )->partition( function( $value, $key ) {
return $value > 2;
} );

pipe

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

$sum = collect( [1, 2, 3] )->pipe( fn( $collection ) => $collection->sum() );
// 6

pipe_into

Pass the collection into a new class instance.

class Stats {
public function __construct( $collection ) {
$this->total = $collection->sum();
}
}
$stats = collect( [1, 2, 3] )->pipe_into( Stats::class );
// $stats->total === 6

pipe_through

Pass the collection through a series of callbacks and return the result.

$result = collect( [1, 2, 3] )->pipe_through([
fn( $c ) => $c->map( fn( $i ) => $i * 2 ),
fn( $c ) => $c->sum(),
]);
// 12

pluck

Get an array with the values of a given key.

$plucked = collect( [
[ 'name' => 'John', 'department' => 'Sales' ],
[ 'name' => 'Jane', 'department' => 'Marketing' ],
] )->pluck( 'name' );

pop

Remove and return the last item from the collection.

$item = collect( [ 1, 2, 3 ] )->pop(); // 3

prepend

Prepend an item to the beginning of the collection.

$collection = collect( [ 1, 2, 3 ] )->prepend( 0 );

prepend_many

Prepend multiple items to the beginning of the collection.

$collection = collect( [ 1, 2, 3 ] )->prepend_many( [ 0, -1, -2 ] );
// [0, -1, -2, 1, 2, 3]

pull

Removes and returns an item from the collection by key.

$item = collect( [ 'name' => 'John' ] )->pull( 'name' );

push

Push an item onto the end of the collection.

$collection = collect( [ 1, 2, 3 ] )->push( 4 );

put

Put an item in the collection by key.

$collection = collect( [ 'name' => 'John' ] )->put( 'age', 30 );

random

Return a random item from the collection.

$random = collect( [ 1, 2, 3 ] )->random();

reduce

Reduce the collection to a single value.

$reduced = collect( [ 1, 2, 3 ] )->reduce( function( $carry, $item ) {
return $carry + $item;
} );

reduce_spread

Reduce the collection to multiple aggregate values at once.

[$min, $max] = collect( [1, 2, 3] )->reduce_spread( function( $min, $max, $value ) {
return [
min( $min, $value ),
max( $max, $value ),
];
}, PHP_INT_MAX, PHP_INT_MIN );
// $min = 1, $max = 3

reject

Filter items in the collection using the given callback.

$collection = collect( [ 1, 2, 3 ] )->reject( function( $item ) {
return $item > 1;
} );

replace

Replace items in the collection with the given items.

$collection = collect( [ 'name' => 'John' ] )->replace( [ 'name' => 'Jane' ] );

replace_recursive

Replace items in the collection with the given items, recursively.

$collection = collect( [ 'name' => 'John' ] )->replace_recursive( [ 'name' => 'Jane' ] );

reverse

Reverse items in the collection.

$collection = collect( [ 1, 2, 3 ] )->reverse();

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

$key = collect( [ 'name' => 'John' ] )->search( 'John' );

shift

Remove and return the first item from the collection.

$item = collect( [ 1, 2, 3 ] )->shift(); // 1

shuffle

Shuffle the items in the collection.

$collection = collect( [ 1, 2, 3 ] )->shuffle();

skip

Skip the first n items.

$collection = collect( [ 1, 2, 3 ] )->skip( 2 );

skip_until

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

$collection = collect( [ 1, 2, 3, 4, 5 ] )->skip_until( function( $value ) {
return $value >= 3;
} );
// [3, 4, 5]

$collection = collect( [ 1, 2, 3, 4, 5 ] )->skip_until( 3 );
// [3, 4, 5]

skip_while

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

$collection = collect( [ 1, 2, 3, 4, 5 ] )->skip_while( function( $value ) {
return $value <= 3;
} );
// [4, 5]

$collection = collect( [ 1, 2, 3, 4, 5 ] )->skip_while( function( $value ) {
return $value < 3;
} );
// [3, 4, 5]

slice

Slice the collection by the given offset and length.

$collection = collect( [ 1, 2, 3 ] )->slice( 1, 2 ); // [2, 3]

sliding

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

$windows = collect( [1, 2, 3, 4] )->sliding( 2 );
// [[1, 2], [2, 3], [3, 4]]

sole

Get the first item in the collection, but only if exactly one item exists. Throws an exception otherwise.

use Mantle\Support\Item_Not_Found_Exception;
use Mantle\Support\Multiple_Items_Found_Exception;

try {
$item = collect( [42] )->sole();
} catch ( Item_Not_Found_Exception | Multiple_Items_Found_Exception $e ) {
// Handle error
}

some

Alias for the contains method.

sort

Sort the collection with an optional callback.

$collection = collect( [ 3, 2, 1 ] )->sort();

sort_by

Sort the collection by the given callback.

$collection = collect( [ 1, 3, 2 ] )->sort_by( function( $item ) {
return $item;
} );

sort_by_desc

Sort the collection by the given callback in descending order.

$collection = collect( [ 3, 2, 1 ] )->sort_by_desc( function( $item ) {
return $item;
} );

sort_desc

Sort the collection in descending order.

$collection = collect( [ 3, 2, 1 ] )->sort_desc();

sort_keys

Sort the collection by keys.

$collection = collect( [ 'b' => 2, 'a' => 1 ] )->sort_keys();

sort_keys_desc

Sort the collection by keys in descending order.

$collection = collect( [ 'b' => 2, 'a' => 1 ] )->sort_keys_desc();

sort_keys_using

Sort the collection keys using a custom callback.

$collection = collect( [ 'b' => 2, 'a' => 1 ] )->sort_keys_using( function( $a, $b ) {
return strcmp( $a, $b );
} );
// ['a' => 1, 'b' => 2]

splice

Remove and return a portion of the collection.

$collection = collect( [ 1, 2, 3, 4, 5 ] )->splice( 1, 2 );

split

Split the collection into the given number of groups.

$collection = collect( [ 1, 2, 3, 4, 5 ] )->split( 2 ); // [[1, 2, 3], [4, 5]]

split_in

Split the collection into the given number of groups, filling the first groups completely.

$groups = collect( [1, 2, 3, 4, 5] )->split_in( 2 );
// [[1, 2, 3], [4, 5]]

sum

Get the sum of the given values.

$sum = collect( [ 1, 2, 3 ] )->sum();

$sum = collect( [
[ 'name' => 'John', 'age' => 30 ],
[ 'name' => 'Jane', 'age' => 25 ],
] )->sum( 'age' );

take

Take the first or last n items.

$collection = collect( [ 1, 2, 3 ] )->take( 2 );

take_until

Take items in the collection until the given condition is met. Stops before the item that matches the condition. You can pass a value or a callback.

$collection = collect( [ 1, 2, 3, 4, 5 ] )->take_until( function( $value ) {
return $value >= 4;
} );
// [1, 2, 3]

$collection = collect( [ 1, 2, 3, 4, 5 ] )->take_until( 3 );
// [1, 2]

take_while

Take items in the collection while the given condition is met. You can pass a value or a callback.

$collection = collect( [ 1, 2, 3, 4, 5 ] )->take_while( function( $value ) {
return $value < 4;
} );
// [1, 2, 3]

$collection = collect( [ 1, 1, 2, 3, 2 ] )->take_while( 1 );
// [1, 1]

tap

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

$collection = collect( [1, 2, 3] )->tap( function( $c ) {
// Do something with $c
} );

times

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

$collection = Collection::times( 3, fn( $i ) => $i * 2 );
// [2, 4, 6]

to_array

Convert the collection to a plain array.

$array = collect( [ 1, 2, 3 ] )->to_array();

to_base

Get a base Mantle collection instance from this collection.

$base = $collection->to_base();

to_json

Convert the collection to its JSON representation.

$json = collect( [ 1, 2, 3 ] )->to_json();

to_pretty_json

Get the collection as pretty-printed JSON.

$json = collect( [1, 2, 3] )->to_pretty_json();

toArray

Alias for the to_array methods.

transform

Transform each item in the collection using a callback (modifies the collection in place).

$collection = collect( [1, 2, 3] )->transform( fn( $item ) => $item * 2 );
// [2, 4, 6]

trim

Trim the collection's string values.

$collection = collect( [ ' John ', ' Jane ' ] )->trim();

undot

Expand a flattened "dot" notation array into an expanded array.

$collection = collect( [ 'user.name' => 'John' ] )->undot();
// [ 'user' => [ 'name' => 'John' ] ]

unique

Filter the collection for unique items.

$collection = collect( [ 1, 2, 2, 3, 3, 3 ] )->unique();

unique_strict

Filter the collection with a strict comparison.

$collection = collect( [ 1, 2, 2, 3, 3, 3 ] )->unique_strict();

unless_empty

Execute a callback if the collection is not empty.

$collection = collect( [ 1, 2, 3 ] )->unless_empty( function( $collection ) {
// ...
} );

unless_not_empty

Execute a callback if the collection is empty.

$collection = collect( [] )->unless_not_empty( function( $collection ) {
// ...
} );

unwrap

Get the underlying array from a collection or arrayable value.

$array = Collection::unwrap( collect( [1, 2, 3] ) );
// [1, 2, 3]

values

Get the values of the collection items.

$values = collect( [ 'name' => 'John', 'age' => 30 ] )->values();

when_empty

Execute a callback if the collection is empty.

$collection = collect( [] )->when_empty( function( $collection ) {
// ...
} );

when_not_empty

Execute a callback if the collection is not empty.

$collection = collect( [ 1, 2, 3 ] )->when_not_empty( function( $collection ) {
// ...
} );

where

Filter the collection by determining if a specific key / value pair is true.

$collection = collect( [ 'name' => 'John' ] )->where( 'name', 'John' );
$collection = collect( [ 'name' => 'John' ] )->where( 'name', '!=', 'John' );

where_between

Filter the collection by determining if a specific item is between two values.

$collection = collect( [
[ 'name' => 'Jack', 'age' => 35 ],
[ 'name' => 'John', 'age' => 30 ],
[ 'name' => 'Jane', 'age' => 25 ],
] )->where_between( 'age', [ 25, 30 ] );

where_in

Filter the collection by determining if a specific key / value pair is in the given array.

$collection = collect( [ 'name' => 'John' ] )->where_in( 'name', [ 'John' ] );

where_in_strict

Filter the collection by determining if a specific key / value pair is in the given array.

$collection = collect( [ 'name' => 'John' ] )->where_in_strict( 'name', [ 'John' ] );

where_instance_of

Filter the collection by determining if a specific item is an instance of the given class.

$collection = collect( [ new User, new Post ] )->where_instance_of( User::class );

where_not_between

Filter the collection by determining if a specific item is not between two values.

$collection = collect( [
[ 'name' => 'Jack', 'age' => 35 ],
[ 'name' => 'John', 'age' => 30 ],
[ 'name' => 'Jane', 'age' => 25 ],
] )->where_not_between( 'age', [ 25, 30 ] );

where_not_in

Filter the collection by determining if a specific key / value pair is not in the given array.

$collection = collect( [ 'name' => 'John' ] )->where_not_in( 'name', [ 'Jane' ] );

where_not_in_strict

Filter the collection by determining if a specific key / value pair is not in the given array.

$collection = collect( [ 'name' => 'John' ] )->where_not_in_strict( 'name', [ 'Jane' ] );

where_not_null

Filter the collection by determining if a specific key / value pair is not null.

$collection = collect( [ 'name' => 'John' ] )->where_not_null( 'name' );

where_null

Filter the collection by determining if a specific key / value pair is null.

$collection = collect( [ 'name' => null ] )->where_null( 'name' );

where_strict

Filter the collection by determining if a specific key / value pair is true.

$collection = collect( [ 'name' => 'John' ] )->where_strict( 'name', 'John' );

wrap

Wrap the given value in a collection if it isn't already one.

$collection = Collection::wrap( 5 );
// [5]

Pass the collection to the given closure and returns the result of the executed closure.

$collection = collect( [ 1, 2, 3 ] );

$piped = $collection->pipe( function ( Collection $collection ) {
return $collection->sum();
} );

// 6

zip

The zip method merges together the values of the given array with the values of the original collection at their corresponding index: