Dot-Array

Dot-Array

Accessing arrays using dot notation and asterisk.

Moamen Eltouny (Raggi) Chun-Sheng, Li (Peter)
PHP Version : >= 7.2 Laravel Version : >= 6.0 License Support
Source Packagist Version Packagist Downloads

Examples

//Get all users names with Dot-Array
$names = $dot->get('users.*.name');

Traditional way

$array['users']['raggi']['name'] = 'Moamen Eltouny';

echo $array['users']['raggi']['name']; // Moamen Eltouny

Dot-Array way (with Dot-Array 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

Install the latest version using Composer

composer require pharaonic/php-dot-array
Usage

Create a new Dot-Array object

New instance way.

$dot = new \Pharaonic\DotArray\DotArray;

// With existing array
$dot = new \Pharaonic\DotArray\DotArray($array);

Function (helper) way.

$dot = dot();

// With existing array
$dot = dot($array);
Methods

Set

Sets a given key / value pair.

$dot->set('users.raggi.created_at', date('r', time()));

// ArrayAccess
$dot['users.raggi.created_at'] = date('r', time());

Get

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'));

toJson

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();

All

Returns all the stored items as an array.

$values = $dot->all();

Delete

Deletes the given key.

$dot->delete('users.*.name');

// ArrayAccess
unset($dot['users.*.name']);

Clear

Deletes all the stored items.

$dot->clear();

Has

Checks if a given key exists (returns boolean).

$dot->has('users.raggi.name');

// ArrayAccess
isset($dot['users.raggi.name']);

Count

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');

isEmpty

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();

setArray

Replaces all items in DotArray object with a given array.

$dot->setArray($array);

setReference

Replaces all items in Dot object with a given array as a reference.

$dot->setReference($array);