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 can be done easily through composer.
composer require jdrieghe/array-helpers
You can choose to use only the static helper methods.
use ArrayHelpers\Arr;
$result = Arr::get($array, $key, $default);
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);
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.
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.
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.