我正在處理一個函數,該函數將一個數組作爲參數,然後使用輸入數組作爲關鍵字調用不同關聯數組的值。因此,例如,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