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

1.2.3 2025-11-20 11:49 UTC

README

A simple object implementation of PHP arrays.

Latest Stable Version Total Downloads License

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