我将在PHP中实现一个setter,它允许我指定数组(目标)的键或子键,将名称作为点分隔键值传递.
给出以下代码:
$arr = array('a' => 1,
'b' => array(
'y' => 2,
'x' => array('z' => 5, 'w' => 'abc')
),
'c' => null);
$key = 'b.x.z';
$path = explode('.', $key);
Run Code Online (Sandbox Code Playgroud)
从价值的$key我想达到的值5的$arr['b']['x']['z'].
现在,给定一个变量值$key和一个不同的$arr值(具有不同的深度).
$key?对于getter get()我写了这段代码:
public static function get($name, $default = null)
{
$setting_path = explode('.', $name);
$val = $this->settings;
foreach ($setting_path as $key) {
if(array_key_exists($key, $val)) {
$val = $val[$key];
} …Run Code Online (Sandbox Code Playgroud)