werxe/laravel-collection-macros

Custom Laravel Collection macros.
28,364 26
Install
composer require werxe/laravel-collection-macros
Latest Version:v8.0.0
PHP:^8.2
License:MIT
Last Updated:May 2, 2026
Links: GitHub  ·  Packagist
Maintainer: werxe

Laravel Collection Macros

Build Status Software License Latest Version on Packagist Total Downloads

Custom Laravel Collection Macros for Laravel 9.

This package is compliant with the FIG standards PSR-1, PSR-2 and PSR-4 to ensure a high level of interoperability between shared PHP. If you notice any compliance oversights, please send a patch via pull request.

Version Matrix

Version Laravel PHP Version
7.x 9.x >= 8.0
6.x 8.x >= 8.0
5.x 8.x >= 7.3
4.x 7.x >= 7.2.5
3.x 6.x >= 7.2
2.x 5.8.x >= 7.1.3
1.x 5.7.x >= 7.1.3

Getting Started

Install the package via Composer by running:

composer require werxe/laravel-collection-macros

By default all macros are enabled and the macro name is the lower cased version of the macro class.

If you want to customize which macros are enabled or just rename the macro name, you can do so by publishing the configuration file, by running:

php artisan vendor:publish --tag="werxe:collection-macros.config"

The configuration file is now published at config/werxe/collection-macros/config.php.

Documentation

Available Macros

increment

Increment a value that's inside a Collection

$collection = collect([
    'total' => 1,
]);

$collection->increment('total', 2); // 3

decrement

Decrement a value that's inside a Collection

$collection = collect([
    'total' => 3,
]);

$collection->decrement('total', 2); // 1

ksort

Sorts the Collection by its keys.

$collection = collect(['d' => 'lemon', 'a' => 'orange', 'b' => 'banana', 'c' => 'apple']);

$collection->ksort(); // ['a' => 'orange', 'b' => 'banana', 'c' => 'apple', 'd' => 'lemon']

krsort

Sorts the Collection by its keys in the reverse order

$collection = collect(['d' => 'lemon', 'a' => 'orange', 'b' => 'banana', 'c' => 'apple']);

$collection->krsort(); // ['d' => 'lemon', 'c' => 'apple', 'b' => 'banana', 'a' => 'orange']

recursive

Recursively convert nested arrays into Laravel Collections.

$collection = collect([
    'name' => 'John Doe',
    'emails' => [
        'john@doe.com',
        'john.doe@example.com',
    ],
    'contacts' => [
        [
            'name' => 'Richard Tea',
            'emails' => [
                'richard.tea@example.com',
            ],
        ],
    ],
]);

// Convert the nested arrays into Collections
$convertedCollection = $collection->recursive();

// Get the contacts as a Collection
$contacts = $convertedCollection->get('contacts');

Contributing

Thank you for your interest in Laravel Collection Macros. Here are some of the many ways to contribute.

Security

If you discover any security related issues, please email security@werxe.com instead of using the issue tracker.

License

Laravel Collection Macros is licenced under the MIT License (MIT). Please see the license file for more information.

Related Packages

aimeos/map

Easy and elegant handling of PHP arrays as array-like collection objects similar...

508,454 4,326
appstract/laravel-response-macros

Extra Response Macro's for Laravel

1,555 32
hyperf/collection

Hyperf Collection package which come from illuminate/collections

1,567,631 0

Version History

Version Released PHP Laravel License
v8.0.0 ^8.2 ^10.0 MIT
v7.0.0 ^8.0 ^9.0 MIT
v6.0.0 ^8.0 ^8.0 MIT
v5.0.1 ^7.3 || ^8.0 ^8.0 MIT
v5.0.0 ^7.3 ^8.0 MIT