DotArray provides a quick and easy access to arrays of data with dot-notation and asterisk.
//Get all users names with DotArray
$names = $dot->get('users.*.name');Traditional way
$array['users']['raggi']['name'] = 'Moamen Eltouny';
echo $array['users']['raggi']['name']; // Moamen EltounyDotArray way (with DotArray Object)
$dot = dot(); // Creating DotArray Object
$dot->set('users.raggi.name', 'Moamen Eltouny');
// Getting [DotArray way]
echo $dot->get('users.raggi.name');
// OR Getting [ArrayAccess way]
echo $dot['users.raggi.name'];Install the latest version using Composer:
$ composer require raggitech/php-dot-array
Create a new DotArray object:
$dot = new \RaggiTech\DotArray\DotArray;
// With existing array
$dot = new \RaggiTech\DotArray\DotArray($array);OR You can use a helper function to create the object:
$dot = dot();
// With existing array
$dot = dot($array);DotArray has the following methods:
Sets a given key / value pair:
$dot->set('users.raggi.created_at', date('r', time()));
// ArrayAccess
$dot['users.raggi.created_at'] = date('r', time());Returns the value of a given key:
print_r($dot->get('users.*.name'));
// ArrayAccess
print_r($dot['users.*.name']);Returns a given default value, if the given key doesn't exist:
print_r($dot->get('users.*.name', 'Raggi'));Returns the value of a given key (like get() method) as JSON:
echo $dot->toJson('users');Returns all the stored items (like get() method) as JSON:
echo $dot->toJson();Returns all the stored items as an array:
$values = $dot->all();Deletes the given key:
$dot->delete('users.*.name');
// ArrayAccess
unset($dot['users.*.name']);Deletes all the stored items:
$dot->clear();Checks if a given key exists (returns boolean):
$dot->has('users.raggi.name');
// ArrayAccess
isset($dot['users.raggi.name']);Returns the number of the root Items:
$dot->count();
// Or use count() function [Countable Way]
count($dot);Returns the number of items in a given key:
$dot->count('users');Checks if a given key is empty (returns boolean):
$dot->isEmpty('users.raggi.name');
// ArrayAccess
empty($dot['users.raggi.name']);Checks the whole DotArray object:
$dot->isEmpty();Replaces all items in DotArray object with a given array:
$dot->setArray($array);Replaces all items in Dot object with a given array as a reference:
$dot->setReference($array);