我正在寻找一个能够使用点表示法访问多维数组的类:
$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)