array icon indicating copy to clipboard operation
array copied to clipboard

Pack of advanced PHP array functions

Minwork Array

Build Status Coverage Status Latest Stable Version Github Stars

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, ...],
  ...
]

Documentation

https://minwork.gitbook.io/array/