shudrum/array-finder

ArrayFinder 组件

v1.1.0 2016-02-01 12:23 UTC

This package is not auto-updated.

Last update: 2024-09-10 19:52:31 UTC


README

Build Status

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