cygnite/array-manipulator

数组元素读取器作为字符串路径

v1.3 2015-06-07 10:16 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:04:07 UTC


README

Cygnite 数组操作器组件用于简单的数组操作和通过简单的字符串路径读取数组值。

#安装

数组操作器使用 Composer 进行安装。有关安装 Composer 文档的说明,请参阅 getcomposer.org。在您的 composer.json 中添加以下内容。

"cygnite/array-manipulator" : "1.*"

#用法

Cygnite 数组访问器用于从多级多维数组中读取值。当您想美化语法并轻松访问值时很有帮助。您可以按以下方式读取值。

#示例

$array = [
         'profile' => [
             "experience"  => [
                 "field" => "Web Development",
                 "technology"    => "PHP"
             ]
         ]
     ];
$arrayAccessor = (new ArrayAccessor())->set($array);
echo $arrayAccessor->toString('profile.experience.field'); // output: Web Development

在某些情况下,您的数组键可能包含点(.),这会使系统困惑是否应该查找下一个键或相同的键。在这种情况下,获取值时,您需要将键提供为下划线或短横线前缀,如下所示。

$array2 = [
         'profile' => [
             "experience"  => [
                 "technology.version"  => "Welcome to PHP v5.4"
             ]
         ]
     ];
$arrayAccessor = (new ArrayAccessor())->set($array1);
echo $arrayAccessor->toString('profile.experience.technology_version'); // output: Welcome to PHP v5.4

#获取数组元素不存在时的默认值

$array3 = [
         'profile' => [
             "experience"  => '4 Years'
         ]
     ];
$arrayAccessor = (new ArrayAccessor())->set($array3);
echo $arrayAccessor->toString('profile.experience.area', 'Application Development'); // output 5 years

使用闭包语法

$array4 = [
         'profile' => [
             "author"  => 'Sanjoy Dey'
         ]
     ];
$arrayAccessor = ArrayAccessor::make(function($a) use ($array4)
{
    return $a->set($array4);
});
echo $arrayAccessor->toString('profile.author');