- Nested arrays
- Arrays of objects
- Associative arrays
- Chaining array transformations
Advanced implementation of well known operations:
composer require minwork/array
- Thoroughly tested
- Well documented
- Leverages PHP 7 syntax and speed
- No external dependencies
- Large variety of usages
// 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, ...],
  ...
]