如何使用键数组搜索多维数组

半停

假设您具有以下数据结构。配置之一是配置值的哈希。搜索是一个哈希键数组,用于从config哈希中提取配置值。

$config['users']['students']['default']['school'] = 'Garfield High';
$config['users']['students']['default']['domain'] = 'ghs.com';
$config['users']['teacher']['default']['fruit'] = 'apple';
$config['school']['superintendent'] = 'Boris York';

$search[] = 'users';
$search[] = 'students';
$search[] = 'default';
$search[] = 'school';

使用$ search数组获取值“ Garfield High”的最有效方法是什么。

这听起来像是学校的作业,但实际上并非如此。我徘徊在兔子洞里,虽然我可能会放弃正在做的事情,但我很好奇如何最好地解决这个问题。似乎应该很容易,但是由于某种原因,我很沮丧。

从$ config中提取值的方法应适用于任何$ search数组大小。它也需要与$ search = array('school','superintendent')一起使用。

public function get($search, $config) {
    // Somehow pull value from $config

}
巴尔玛

这是一个简单的循环,将的每个元素$search用作要搜索的数组的下一级的键。

public function get($search, $config) {
    $result = $config;
    foreach ($search as $key) {
        if (is_array($result) && isset($result[$key])) {
            $result = $result[$key];
        } else {
            return false; // not found
        }
    }
    return $result;
}

演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章