shudrum / array-finder
ArrayFinder 组件
v1.1.0
2016-02-01 12:23 UTC
Requires
- php: >=5.4
This package is not auto-updated.
Last update: 2024-09-10 19:52:31 UTC
README
ArrayFinder 组件
ArrayFinder 组件允许您轻松管理大型嵌套数组。
以下是一个简单示例,展示如何轻松地从数组中获取值
use Shudrum\Component\ArrayFinder\ArrayFinder; $arrayFinder = new ArrayFinder([ 'level_1' => [ 'level_2' => [ 'level_3' => 'value', ], ], ]); $myValue = $arrayFinder->get('level_1.level_2.level_3'); // OR $myValue = $arrayFinder['level_1.level_2.level_3'];
要安装此包,您可以直接使用 composer
composer require shudrum/array-finder
文档
方法
get($path)
您可以通过使用 '.' 分隔的路径来获取值。
use Shudrum\Component\ArrayFinder\ArrayFinder; $arrayFinder = new ArrayFinder([ 'a' => [ 'b' => [ 'c' => 'value1', ], 'value2', ], 'value3', ]); $myValue = $arrayFinder->get('a.b.c'); // value1 $myValue = $arrayFinder->get('a.0'); // value2 $myValue = $arrayFinder->get(0); // value3
如果路径为 null
,将返回所有内容。
set($path, $value)
您可以在使用 '.' 分隔的特定路径中添加值。如果嵌套数组不存在,它将被创建。
use Shudrum\Component\ArrayFinder\ArrayFinder; $arrayFinder = new ArrayFinder(); $arrayFinder->set('a.b', 'value'); $arrayFinder->get(); // ['a' => ['b' => 'value]]
changeSeparator($separator)
如果默认分隔符 (.) 不符合您的需求,您可以通过调用此方法来更改它。
use Shudrum\Component\ArrayFinder\ArrayFinder; $arrayFinder = new ArrayFinder([…]); $myValue = $arrayFinder->changeSeparator('/'); $myValue = $arrayFinder->get('a/b/c');
实现
ArrayFinder 组件实现了某些有用的接口
ArrayAccess
您可以使用此对象像使用数组一样。
use Shudrum\Component\ArrayFinder\ArrayFinder; $arrayFinder = new ArrayFinder([…]); $value = $arrayFinder['a.b']; $arrayFinder['a.b.c'] = 'value'; unset($arrayFinder['a.b']);
Countable
您可以在该对象上使用 count。
use Shudrum\Component\ArrayFinder\ArrayFinder; $arrayFinder = new ArrayFinder([…]); count($arrayFinder); count($arrayFinder['a.b']);
Iterator
您可以迭代该对象。
use Shudrum\Component\ArrayFinder\ArrayFinder; $arrayFinder = new ArrayFinder([…]); foreach ($arrayFinder as $key => $value) { // … }
Serializable
您可以轻松序列化/反序列化此对象。
##资源
您可以使用以下命令运行单元测试
$ cd path/to/Shudrum/Component/ArrayFinder/
$ composer install
$ phpunit