2013-11-01 32 views
0

社區。如何使用PHP變量定義數組元素

我一直在尋找一個答案,而不是這種情況下足夠接近

我有這樣的(實際上是工作的罰款)代碼:

array('desc'=>'Home') 

它正在將其定義爲文本(Home),但我寧願將它用作多語言網站的PHP變量。使用的語言包我有一個變量,例如:

$lang['HOME'] = 'Home'; 

因此根據所選擇的語言中,值變化

換句話說,我需要的陣列具有可變值作爲元件

array('desc'=>'variablehere') 

任何人都可以讓我知道我錯過了什麼?我試圖將其設置爲變量,如echo和其他方式。

非常感謝!

+1

'array('desc'=> $ variablehere)''? –

回答

1

是否這樣?

$myArray = array('desc' => $variable); 

$myArray = array(
    'desc' => $desc, 
    'name' => $name 
); 

你的情況:

$lang = array('HOME' => $homeVariable); 
+0

+1並刪除了我的:)沒有意識到你到達那裏就在我之前。 – Albzi

0

使用多維數組。例如,鑑於類似

$lang = 'en'; 
$key = 'desc'; 

確切的陣列結構取決於你的需求,但它可能或者是主要由語言,或通過鍵到翻譯:

語言基礎:

$translations = array(
    'en' => array('desc' => 'foo'), 
    'fr' => array('desc' => 'bar') 
); 

$text_to_display = $translations['en']['desc']; // produces 'foo' 

$translations = array(
    'desc' => array(
     'en' => array('desc' => 'foo'), 
     'fr' => array('desc' => 'bar') 
    ) 
) 

$text_to_display = $translations['desc']['fr']; // produces 'bar' 
+0

工作很好。謝謝您的幫助 –

0

使用翻譯功能來代替:

// It can be key-based, i.e., t('home_string'), or literal like below 
t('Home'); 


function t($text, $language = NULL) 
{ 
    if (!$language) { 
     // determine visitor's language 
    } 

    // look up translation in db/file 
    // if none found just return $text as is 

} 
相關問題