yannoff / collections
A simple object implementation for PHP arrays
Installs: 315
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
pkg:composer/yannoff/collections
Requires (Dev)
This package is auto-updated.
Last update: 2025-11-25 17:48:00 UTC
README
A simple object implementation of PHP arrays.
The concept
Based upon the Decorator design pattern, the aim is to provide a flexible, object-oriented alternative to PHP Arrays.
Installation
Using composer:
$ composer require yannoff/collections
Usage
Example: PHP Array vs Collection
The classic way - native PHP arrays:
<?php // Using PHP native arrays, the classic way: $countries = [ 'France', 'Italia' ]; // Push an element array_push($countries, 'Switzerland'); // Append an element $countries[] = 'Belgium';
The new way - using collections:
<?php use Yannoff\Component\Collections\Collection; // Using collections: $countries = new Collection([ 'France', 'Italia' ]); // Push an element $countries->push('Switzerland'); // Append an element: the same syntax as for arrays $countries[] = 'Belgium'; // Exporting the collection back to a native PHP array: $array = $countries->all(); // As for native arrays, collections can be traversed with a foreach: foreach($countries as $key => $value) { // ... }
Methods
See the full method list for more details.
Array / Collection method equivalences:
| Array | Collection |
|---|---|
| implode($glue, $array) | $collection->join($glue) |
| array_filter($array, $callback, $flag) | $collection->filter($callback, $flag) |
| array_flip($array) | $collection->flip() |
| array_keys($array) | $collection->keys() |
| array_map($callback, $array, ..$arrays) | $collection->map($callback, ...$arrays) |
| array_pop(&$array) | $collection->pop() |
| array_push(&$array, $element) | $collection->push($element) |
| array_reverse($array) | $collection->reverse() |
| array_search($needle, $array) | $collection->search($needle) |
| array_slice($array, $offset, $length) | $collection->slice($offset, $length) |
| array_shift(&$array) | $collection->shift() |
| array_unique($array, $flags) | $collection->unique($flags) |
| array_unshift(&$array, $element) | $collection->unshift($element) |
| array_walk(&$array, $callback, $userdata) | $collection->walk($callback, $userdata) |
| current(&$array) | $collection->current() |
| end(&$array) | $collection->end() |
| next(&$array) | $collection->next() |
| prev(&$array) | $collection->prev() |
| sort(&$array) | $collection->sort() |
| asort(&$array) | $collection->asort() |
| ksort(&$array) | $collection->ksort() |
Along with those classical PHP methods wrappers, a few bag methods are provided:
| method | description |
|---|---|
| add($key, $element) | Add an element at the given key in the collection |
| all() | Return all the collection elements |
| clear() | Remove all elements from the collection |
| get($key) | Get an element of the collection by its key |
| has($key) | Check for existence of the given key in the collection |
| set($elements) | Set the whole elements of the collection |
License
Released under the MIT License