我正在处理一个函数,该函数将一个数组作为参数,然后使用输入数组作为关键字调用不同关联数组的值。因此,例如,PHP:将标准数组转换为关联数组键?
array('level_1', 'level_2', 'level_3')
应该成为
$variable_defined_within_function['level_1']['level_2']['level_3']
我有办法做到这一点,我认为会的工作,但感觉哈克和奇怪,我真的不希望使用eval()
除非我绝对必须。
function fetch($keys) {
if (!is_array($keys)) { $variable = array($keys); }
foreach ($keys as $key) {
$assoc_string .= '[' . str_replace('\'' . '\\\'' . $key) . ']';
}
$reqstring = 'if (isset($this->vars' . $assoc_string . ')) { return $this->vars' . $assoc_string . '; } else { return false; }';
eval($reqstring);
}
这看起来不对,是吗?我怎么能将一个键列表转换为关联数组?
我再次忽略foreach'的'电源。除了你的一些格式问题,这个工作!谢谢 – Jonesy