dottwatson / simple-data
traverse an array or an object by accessing the children and parents of a node
1.0
2024-10-28 12:56 UTC
This package is auto-updated.
Last update: 2025-02-28 13:47:58 UTC
README
traverse an array or an object by accessing the children and parents of a node
Install
In your project
composer require dottwatson/simple-data
Usage
$data = [ 'bar' => [0,1,2,3,4,5], 'foo' => [10,20,30,40,50] ]; $object = new StdClass; $object->bar = 'foo';
with dedicated function
$array = simple_data($data); //returns a SimpleData\SimpleArray object $object = simple_data($object); //returns a SimpleData\SimpleObject object
or with instance
use SimpleData\SimpleArray; $array = new SimpleArray($data);
then traverse your array (or object)
$item = $array->get('bar'); $itemData = $array->get('bar')->value(); //returns [0,1,2,3,4,5] //retrieve a value and back to its parent $item = $array->get('bar'); $parentNode = $item->parent();
accessing to values
$value = $array->get('foo')->get(2); echo $value->value(); //returns 30 $parent = $value->parent()->value(); // returns [10,20,30,40,50] $result = $array ->nthChild(2) //select child #2 ->append(1000) //add 1000 ->parent() //return top of proviouse hthChild ->set('genders',['Male','Female','Unisex']) //add key=>value ->nthChild(1) //select child #1 ->set(6,60) // add key=>value ->parent() // return top of proviouse hthChild ->value(); //get value // result = Array // ( // [bar] => Array // ( // [0] => 0 // [1] => 1 // [2] => 2 // [3] => 3 // [4] => 4 // [5] => 5 // [6] => 60 // ) // [foo] => Array // ( // [0] => 10 // [1] => 20 // [2] => 30 // [3] => 40 // [4] => 50 // [5] => 1000 // ) // [genders] => Array // ( // [0] => Male // [1] => Female // [2] => Unisex // ) // ) echo $array->get('bar')->get(2)->path(); // returns "bar/2" echo $array->xfind('gender/0')->value(); //returns "Male"
Available methods on array
Here a list on the available methods on SimpleData\SimpleArray
Method | Description | Options | Notes |
---|---|---|---|
get |
Get an item by its key | string $key | |
nthChild |
Retrieve a child from its numeric index or a closure. The childs counters starts from 1. If $keyNumber is a Closure, the other extra parameters will be sent to the closure | int | Closure $keyNumber | |
items |
Get indexed items in current array | ||
count |
Returns the array items count | ||
keys |
Returns the array keys | ||
value |
Return the current array data with all modifications | ||
parent |
Returns the parent node in the array if any | ||
has |
Check if key exists in array | string $key | |
key |
Returns the current item key | ||
first |
Returns the first item in the array if exists | ||
last |
Returns the last item in the array if exists | ||
shift |
Remove the first item in the array if exists and returns it | ||
pop |
Remove the last item in the array if exists and returns it | ||
set |
Set a pair key => value item in teh array. If exists, will be overwritten | string $key, string $value | used to add/overwrite items |
append |
Append alle items, passed as arguments, to the array | [$arg1,[$arg2]...] | |
prepend |
Prepends all items, passed as arguments, to the array | [$arg1,[$arg2]...] | |
path |
Returns the relative path , included current key | [string $separator = '/'] | |
find |
Returns an item or null, based on its xpath relative to current element where search starts | string $path,[string $separator = '/'] | |
iterable |
Tells if is a valid array (a traversable SimpleData) | This is useful for determinate if an end value or array or object to traverse |
Available methods on SimpleValue
Here a list on the available methods on Lonfo\SimpleValue
Method | Description | Options | Notes |
---|---|---|---|
key |
Returns the current item key | ||
value |
Returns value | ||
parent |
Returns the parent array | ||
type |
Returns the value type | ||
path |
Returns the full data path , included current key | [string $separator = '/'] | |
iterable |
Tells if is a valid array (a traversable SimpleData) | This is useful for determinate if an end value or array to traverse |