fnayou/dotted

用于访问多维数组的 PHP 库

2.0 2022-10-30 19:38 UTC

This package is auto-updated.

Last update: 2024-08-29 03:17:02 UTC


README

Scrutinizer Code Quality Version Build Status

Dotted 是一个用于管理 多维数组 的 PHP 库!

它将帮助您轻松地进行 检查访问插入 数组的值。

安装

使用 Composer 安装 dotted

$ php composer.phar require fnayou/dotted

下载最新版本 并将 src/Dotted.php 包含到您的项目中。

兼容性

在最近更改之后。 Dotted 仅兼容 >= PHP 7.4,对于旧版本,请使用标签 1.x.x

使用方法

首先,您通过传递数组内容创建 dotted 对象。

然后您可以轻松地进行 检查访问插入 值。

<?php

    use Fnayou\Dotted;

    $content = [
        'keyOne' => 'valueOne',
        'keyTwo' => [
            'keyThree' => 3,
            'keyFour' => false,
            'keyFive' => [
                true,
                'valueFive',
                5,
            ]
        ]
    ];

    $dotted = new Dotted($content);
    // or
    $dotted = Dotted::create($content);

    // check if values exist
    echo $dotted->has('keyOne');                        // output : true
    echo $dotted->has('keyTwo.keySix');                 // output : false

    // access values
    echo $dotted->get('keyOne');                        // output : valueOne
    echo $dotted->get('keyTwo.keyThree');               // output : 3
    echo $dotted->get('keyTwo.keyFive.0');              // output : true

    // access non-existent value
    echo $dotted->get('keyTwo.keySix');                 // output : null

    // access value with default value
    echo $dotted->get('keyTwo.keySix', 'defaultValue'); // output : defaultValue

    // insert value
    $dotted->set('keyTwo.keySix', 'valueSix');
    echo $dotted->get('keyTwo.keySix');                 // output : valueSix

    // insert value with override
    $dotted->set('keyTwo.keySix', 6);                   // output : 6

    // access values (array content)
    $dotted->getValues();
    /** output :
      array:2 [▼
        "keyOne" => "valueOne"
        "keyTwo" => array:3 [▼
          "keyThree" => 3
          "keyFour" => false
          "keyFive" => array:3 [▼
            0 => true
            1 => "valueFive"
            2 => 5
          ]
        ]
      ]
    */

    // access flatten values
    $dotted->flatten();
    /** output :
      array:6 [▼
        "keyOne" => "valueOne"
        "keyTwo.keyThree" => 3
        "keyTwo.keyFour" => false
        "keyTwo.keyFive.0" => true
        "keyTwo.keyFive.1" => "valueFive"
        "keyTwo.keyFive.2" => 5
      ]
    */

致谢

Aymen FNAYOU

许可

license 请参阅 许可文件 了解更多信息。