小编Joh*_*ith的帖子

使用点表示法访问多维数组

我正在寻找一个能够使用点表示法访问多维数组的类:

$config->get('bar.baz.foo');
Run Code Online (Sandbox Code Playgroud)

代替:

$config['bar']['baz']['foo']
Run Code Online (Sandbox Code Playgroud)

这是班级:

<?php

class DotNotation
{
    /**
     * @var array
     */
    protected $values = array();

    public function __construct(array $values)
    {
        $this->values = $values;
    }

    /**
     * @param string $path
     * @param string $default
     * @return mixed
     */
    public function get($path, $default = null)
    {
        $array = $this->values;

        if (!empty($path)) {
            $keys = explode('.', $path);
            foreach ($keys as $key) {
                if (isset($array[$key])) {
                    $array = $array[$key];
                } else {
                    return $default;
                }
            }
        }

        return $array;
    }

    /** …
Run Code Online (Sandbox Code Playgroud)

php arrays

17
推荐指数
1
解决办法
8045
查看次数

标签 统计

arrays ×1

php ×1