jdrieghe / array-helpers
A collection of convenience methods to deal with arrays in php. Somewhat inspired by Laravel array helpers.
Installs: 409 837
Dependents: 3
Suggesters: 0
Security: 0
Stars: 17
Watchers: 1
Forks: 3
Open Issues: 0
Requires (Dev)
- phpunit/php-code-coverage: ^4.0
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-11-29 04:52:24 UTC
README
Purpose
This package was inspired by some of the great array helper functions in Laravel.
Having to include all of Illuminate\Support
is sometimes a bit too much for a given project, so I decided to build
a separate package to provide some much needed framework independent array magic.
Installation
Installation can be done easily through composer.
composer require jdrieghe/array-helpers
Usage
Static approach
You can choose to use only the static helper methods.
use ArrayHelpers\Arr;
$result = Arr::get($array, $key, $default);
Functional approach
If you prefer a more functional approach, some namespaced convenience methods are available as well:
use function ArrayHelpers\array_get;
$result = array_get($array, $key, $default);
Available helpers
Array Get
This helper allows you to get an item from an array using dot notation. If the item is not found, it will return a given default or null.
$data = [
'foo' => [
'bar' => 'baz',
],
];
Arr::get($data, 'foo');
// returns: ['bar' => 'baz'];
Arr::get($data, 'foo.bar');
// returns: 'baz';
Arr::get($data, 'xyz', 'default');
// returns: 'default';
Note that Arr::get()
can be replaced with array_get()
if you prefer a functional approach.
Array Has
This helper checks if an item exists in an array using dot notation.
$data = [
'foo' => [
'bar' => 'baz',
],
];
Arr::has($data, 'foo');
// returns: true;
Arr::has($data, 'foo.bar');
// returns: true;
Arr::has($data, 'xyz');
// returns: false;
Note that Arr::has()
can be replaced with array_has()
if you prefer a functional approach.
Array Set
This helper sets a certain key in an array to a certain value. Dot notation can be used to create a deeply nested key.
$data = [];
Arr::set($data, 'foo.bar', 'baz');
$data
now contains:
[
'foo' => [
'bar' => 'baz',
],
];
Note that Arr::set()
can be replaced with array_set()
if you prefer a functional approach.