获取项目,关联数组


get Item, assoctivate array

加上这个:

//Example array
$arr = array(
'db' => array('host' => 'local', 'user' => 'root'));

    public function getParam($name, $default = null)
        {
            if (array_key_exists($name, $this->params)) {
                return $this->params[$name];
            }
            return $default;
        }

我可以得到整个db数组,但如果我想达到'主机'只有与getParam方法()我需要如何扩展getParam方法这是灵活的,并在每一个不依赖于数组有多深的工作?

不确定是否有更好的解决方案,但我可能会做一个递归的解决方案。像这样:

public function getParam($name, $default = null, $arrayToCheck = false)
{
    if (!$arrayToCheck) 
        $arrayToCheck = $this->params;
    if (array_key_exists($name, $arrayToCheck)) {
        return $arrayToCheck[$name];
    }
    // if we get here, we haven't found it
    foreach($arrayToCheck as $arrayItem)
    {
        if (is_array($arrayItem))
        {
            return $this->getParam($name, $default, $arrayItem);
        }
    }

    return $default;
}

将递归地在数组中搜索键并返回第一个匹配的值。