Download the PHP package byjoby/flatrr without Composer
On this page you can find all versions of the php package byjoby/flatrr. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download byjoby/flatrr
More information about byjoby/flatrr
Files in byjoby/flatrr
Package flatrr
Short Description A library for working with multi-dimensional arrays through flattened keys
License MIT
Informations about the package flatrr
Flatrr
What Flatrr does
Flatrr is a utility library for accessing arrays via flattened key names. So, for example, rather than using $arr['foo']['bar']
you could use $arr['foo.bar']
. Mostly this is useful if you want to use string building to make the keys you're going to use to access an array.
It should be noted that because of the way arrays and references work, this is not going to work exactly the same way as a native array in all cases. There are actually countless tiny caveats, and with that in mind you should generally stick to using this library as it is documented. Using undocumented features is exceptionally unpredictable due to the nature of this tool, and things may work radically different under the hood in the future.
FlatArray
The main FlatArray class is very simple. It only implements \Array and \Iterator. With it you can make arrays, merge values into them, and retrieve parts of the array via flattened keys.
Constructing and getting values
You can then access the values of the array like a normal array, through the get()
method, or by flattened keys.
Setting values
Values can be set through either flattened keys or the set()
method. Setting values like a normal multi-dimensional array won't work beyond the first layer, and it shouldn't be done.
SelfReferencingFlatArray
SelfReferencingFlatArray is a class that does everything FlatArray does, but also allows strings within the array to reference other fields within the array, and include them as strings. For example:
Config
Config does the same things as SelfReferencingFlatArray, but adds methods for reading INI, JSON, and YAML files. It also provides methods for extracting its contents as JSON and YAML.