abbasghasemi / collection
A collection of complete tools for working with PHP arrays.
1.6
2024-08-19 19:53 UTC
Requires
- php: ^8.1
This package is auto-updated.
Last update: 2024-12-19 20:38:58 UTC
README
A PHP library for work with arrays
Powerful
- Support List, Map, Set, Stack, Queue, Object ...
- Functional (indexOf, map, where, reduce, first, firstOrNull firstWhere, ...)
- Type generic documentation
- Collections class for generate & filled List
Collections::filled(int $length, mixed $element)
- The ability to enforce maps and lists to accept a specific type
Installation
The preferred of installation is via Composer. Run the following
command to install the package and add it as a requirement to your project's
composer.json
:
composer require abbasghasemi/collection
Array example
$list = Collections::filled(10, 'filled'); // ArrayList echo count($list); // 10 echo Collections::toArraySet($list)->size(); // 1 $list->add(1); // This method does not exist! echo $list->first(); // filled $list = new MutableArrayList(/*[default]*/type: 'int'); $list->add(1); // added $list->add(5); // added echo count($list); // 2 echo $list->indexOf(1); // 0 echo $list->indexOf(6); // -1 $list = Collections::generate(10, function ($index){ return $index; }); // ArrayList $list = $list->where(function ($element){ return $element % 2 === 0; }); echo $list->last(); // 8 echo $list; // [0,2,4,6,8]
Map example
$map = new MutableInsensitiveMap(); $map['InSensitive'] = 'Insensitive'; $map['INSENSITIVE'] = 'Insensitive'; echo $map['insensitive']; // Insensitive echo $map->size(); // 1 $object = new MutableArrayList(); // or other object $map2 = new MutableObjectMap(keyType: $object::class, valueType: $map::class); $map2[$object] = $map; echo intval($map2[$object] === $map); // 1 $map2->values()->first()['INSENSITIVE'] = 10; echo $map['InSensitive']; // 10 $map2->keys()->first()->add('first'); $map2->keys()->first()->add('last'); echo $object->join(','); // first,last
Arrays class
Class methods
Maps class
Class methods
Collections class
See also easy-data-model
Creates a data model from array data.
Author & support
This library was created by Abbas Ghasemi.
You can report issues at the GitHub Issue Tracker.