2011-05-02 67 views
1

我不確定是否有這樣的功能,但我期望它能做到以下幾點: get_array_value($array, $chain);其中$array是搜索該值的數組,$chain是一個數組包含要檢索的值的信息。如何動態獲取數組值

實例:如果$chain = array('key1', 'key2', 'key3');,則函數應該返回$array['key1']['key2']['key3'];

有什麼類似的在那裏已如果沒有,我怎麼能做到這一點?

在此先感謝!

UPDATE:

呵呵,預期的結果應該是單個值,而不是數組。所以,我可以用它像echo get_array_value($array, $chain);

回答

5
$cloneArray = $array; // clone it for future usage 
foreach($chain as $value) 
{ 
    $cloneArray = $cloneArray[$value]; 
} 

var_dump($cloneArray); 
+0

簡單和作品像一個魅力!謝謝! – jolt 2011-05-02 11:53:09

3
function resolve ($array, $chain) { 
    return empty($chain) 
     ? $array; 
     :resolve($array[array_shift($chain)], $chain); 
} 

多數民衆贊成在很短的形式。您必須驗證所有要解析的密鑰是否存在(以及此類)。