Download
Haven't you thought, that using $array['some']['nested']['array']['value'] is to long and hard at least to write? Well, i did. And made this lib which will help you to manage your arrays in dot-notation style.
This lib will help you to do this: $var = $array['a']['b']['c']['d'] ?? 'default value';
a bit shorter: $var = A::get($array, 'a.b.c.d', 'default value');
Contents
-
Requirements
-
Installation
-
Classes and methods
* xobotyi\A
* Getting
* Iteration
* Checking
* Modification
* Interaction
* Others
Requrements
Installation
composer require
composer require xobotyi/dotarray
composer.json
{
"require": {
"xobotyi/dotarray":"^1.0.8"
}
}
After that run composer update or php composer.phar update , and you will be able to A::set($arrays, 'for.some.dotted.magic')
Classes and methods
xobotyi\A
A is class containing static methods to perform actions on common arrays and ArrayObjects. Someone will think that A is bad or inconvenient name for class, but i think that it's handy to type A:: without releasing Shift button =)
___
Array getting
-
get - Get an element.
-
values - Get all values.
-
last - Get last element(s).
-
lastKeys - Get key(s) of last elements(s).
-
first - Get first element(s).
-
firstKeys - Get key(s) of first elements(s).
A::get(array $array [, ?string $path = null [, $default = null]])
_Description:_ Returns $array's value placed on the $path or $default value if provided $path doesn't exists.
A::values(array $array [, bool $flatten = false])
_Description:_ Returns all the values from the $array as a sequential array (without it's keys).
A::last(array $array [, int $count = 1])
_Description:_ Returns last $count element(s) value(s) from the $array.
A::lastKeys(array $array [, int $count = 1])
_Description:_ Returns last $count element(s) key(s) from the $array.
A::first(array $array [, int $count = 1])
_Description:_ Returns first $count element(s) value(s) from the $array.
A::firstKeys(array $array [, int $count = 1])
_Description:_ Returns first $count element(s) keys from the $array.
___
Array iteration
-
walk - Execute a provided function once for each array element
A::walk(array $array, callable $callback [, bool $recursive = false])
_Description:_ Applies $callback to each element of the $array.
___
Array checking
-
every - Test whether all elements in the array pass the test implemented by the provided function.
-
any - Test whether at least one element in the array passes the test implemented by the provided function.
-
has - Check whether all provided values presented in array.
-
hasAny - Test whether at least one provided value presented in array.
-
hasKey - Check whether all provided values presented in array as key.
-
hasAnyKey - Check whether at least one provided value presented in array as key.
-
arrayKeyExists - Check whether array has provided key.
-
isAssoc - Check whether array is associative, e.g. has string keys.
-
isSequential - Check whether array is sequential, e.g. has only int keys placed in ascending order.
A::every(array $array, callable $callback)
_Description:_ Applies $callback to each $array's element and returns true if EVERY call returned TRUE.
A::any(array $array, callable $callback)
_Description:_ Applies $callback to each $array's element and returns true if ANY call returned TRUE.
A::has(array $array, ...$values)
_Description:_ Tests whether $array contains ALL of provided ...$values.
A::hasAny(array $array, ...$values)
_Description:_ Tests whether $array contains ANY of provided ...$values.
A::hasKey(array $array, string ...$paths)
_Description:_ Tests whether $array has ALL of provided ...paths.
A::hasAnyKey(array $array, string ...$paths)
_Description:_ Tests whether $array has ANY of provided ...paths.
A::arrayKeyExists(array &$array, string $key)
_Description:_ The faster analog to \array_key_exists().
A::isAssoc(array $array)
_Description:_ Tests whether $array is an associative array.
A::isSequential(array $array)
_Description:_ Tests whether $array is a sequential ([1,2,3,4,...] ) array.
___
Array modification
-
set - Set value(s) with provided keys(s).
-
append - Add element(s) to the end of array.
-
prepend - Add element(s) to the beginning of array.
-
delete - Delete an element with provided keys(s).
-
chunk - Split array into a chunks of provided size.
-
flip - Swap keys and values.
-
changeKeyCase - Change the case of all keys in an array.
A::set(array $array, string|array $path [, $value])
_Description:_ Sets the $value on the $path.
If $path parameter is an array - it's keys will be used as paths and vales as values.
A::append(array $array, ...$values)
_Description:_ Adds passed ...$values to the end of $array.
A::prepend(array $array, ...$values)
_Description:_ Adds passed ...$values to the beginning of $array.
A::delete(array $array, string ...$paths)
_Description:_ Deletes $array's items placed on the provided ...$paths.
A::chunk(array $array, int $chunkSize [, bool $preserveKeys = false])
_Description:_ Chunks an array into arrays with $chunkSize elements. The last chunk may contain less than $chunkSize elements.
A::flip(array $array)
_Description:_ Returns an array in flip order, i.e. keys from array become values and values from array become keys.
If a value has several occurrences, the latest key will be used as its value, and all others will be lost.
A::changeKeyCase(array $array [, int $case = CASE_LOWER [, bool $recursive = false]])
_Description:_ Returns an array with all keys from $array lower- or upper- cased.
___
Arrays interaction
-
diff - Compute right diff of provided arrays.
-
symdiff - Compute symmetric diff of provided arrays.
-
diffAssoc - Compute intersection of provided arrays with additional index check.
-
intersect - Compute intersection of provided arrays.
-
intersectAssoc - Compute intersection of provided arrays with additional index check.
A::diff(array $array, array ...$arrays [, bool $preserveKeys = false])
_Description:_ Compares $array against ...$arrays and returns the values in $array that are not present in any of the other ...$arrays.
If $preserveKeys set to TRUE values keys will be preserved.
A::symdiff(array $array, array ...$arrays [, bool $softDiff = false])
_Description:_ Returns symmetric difference between arrays (values not presented in all the arrays simultaneously).
If $softDiff is set to TRUE, result will include only values that has no intersection with other arrays.
A::diffAssoc(array $array, array ...$arrays)
_Description:_ Acts like A::diff() but the array keys are also used in the comparison.
A::intersect(array $array, array ...$arrays [, bool $preserveKeys = false])
_Description:_ Compares $array against ...$arrays and returns all the values of $array that are present in all ...$arrays.
If $preserveKeys set to TRUE values keys will be preserved.
A::intersectAssoc(array $array, array ...$arrays)
_Description:_ Acts like A::intersect() but the array keys are also used in the comparison.
___
Array Others
-
glue - Glue array with provided delimiter.
-
splitPath - Split provided string into an array representing nested keys.
A::splitPath(string $path)
_Description:_ Splits given string to it's segments according to dot notation.
A::glue(array $array, string $glue = '')
_Description:_ Glues $array items into a string, with $glue as delimiter.
|