nzo / array
Pack of advanced array functions specifically tailored for: associative (assoc) array, multidimensional array, array of objects and handling nested array elements
v1.13.3
2020-10-01 14:55 UTC
Requires
- php: >=7.1
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-10-29 05:59:41 UTC
README
Pack of array convenience methods for handling:
- Nested arrays
- Arrays of objects
- Associative arrays
- Chaining array transformations
Easily create, access, validate, manipulate and transform arrays
Advanced implementation of well known operations:
Installation
composer require minwork/array
Advantages
- Thoroughly tested
- Well documented
- Leverages PHP 7 syntax and speed
- No external dependencies
- Large variety of usages
Example of usage
// Set nested array value $array = Arr::set([], 'key1.key2.key3', 'my_value'); // Which is equivalent to [ 'key1' => [ 'key2' => [ 'key3' => 'my_value' ] ] ] // Get nested array value Arr::get($array, 'key1.key2') -> ['key3' => 'my_value'] // Check if array has nested element Arr::has($array, 'key1.key2.key3') -> true // Map array while accessing it's key Arr::map($array, function ($key, $value) { // Your code here }); // Find array element Arr::find($array, function ($element) { return Arr::get($element, 'key2.key3') === 'my_value'; }) -> [ 'key2' => [ 'key3' => 'my_value'] ] // Chain few methods Arr::obj(['test' => 1, 'foo' => 'bar']) ->set('abc', 123) ->set('[]', 'auto_index') ->remove('foo') ->getArray() -> [ 'test' => 1, 'abc' => 123, 'auto_index' ] // Group objects by the result of calling method 'getSize' on each object Arr::groupObjects([$cat, $dog, $fish, ...], 'getSize') -> [ 'medium' => [$cat, $dog, ...], 'small' => [$fish, ...], ... ]