2012-04-03 63 views
1

我有這樣的事情:如何使用字符串訪問PHP多維數組中的元素?

function print_element($array, $field){ 
    return "Element: {$array[$field]}"; 
} 

$array['name_en'] = 'English name'; 
echo print_element($array, 'name_en'); 

我想屬於主陣列像這樣的陣列內訪問屬性:

$array['english_values']['name_en'] = 'English name'; 
echo print_element($array, "['english_values']['name_en']"); 

有沒有辦法做到這一點?

Thx提前。

+1

如果你的函數不返回任何東西,你不需要在它之前調用'echo'。你的函數在內部處理'echo'。 – Sampson 2012-04-03 22:03:54

回答

2
echo print_element($array['english_values'], 'name_en'); 
1

僅將字符串'english_values,name_en'傳遞給您的函數。在函數內部,使逗號分解字符串,然後遍歷數組,並在每次傳遞中分配$array = $array[$thisKey]。您也可以在每次通過時檢查它是否爲is_array($array)

0

你有陣列,也是鍵試試這個:

function print_var($val) { 
     echo "VAR: {$val} <br/>"; 
    } 

    $array['english_values']['name_en'] = 'English name'; 
    print_var($array['english_values']['name_en']); 

    // OUTPUT 
    // VAR: English name