2017-11-11 54 views
-2

我無法理解訪問數組中的值。我以爲我擁有它,但現在卻撞上了一堵牆。我有以下陣列:最後一個數組值覆蓋其他數字

array(3) { 
    ["en_value"]=> 
    string(11) "Motor yacht" 
    ["es_value"]=> 
    string(12) "Yate a motor" 
    ["de_value"]=> 
    string(10) "Motoryacht" 
} 

...我想從使用此代碼獲取每個值:

foreach ($typeArray as $key => $titleValue) { 

    if ($key = 'en_value') { 
     $titleTypeEn = $titleValue; 

    } else if ($key = 'es_value') { 
     $titleTypeEs = $titleValue; 

    } else if ($key = 'de_value') { 
     $titleTypeDe = $titleValue; 

    } 
} 

echo "english: ".$titleTypeEn."\n"; 
echo "spanish: ".$titleTypeEs."\n"; 
echo "german: ".$titleTypeDe."\n"; 

......這給了我這樣的輸出:

english: Motoryacht 
Undefined variable: titleTypeEs ... 
spanish: 
Undefined variable: titleTypeDe ... 
german: 

我認爲,通過爲每個鍵設置一個值,然後可以在循環外訪問它們,但顯然我錯了(或者我做錯了)。

另外我不明白爲什麼en_value被設置,但最後鍵值最後?幫助和指導表示讚賞。

+1

你在ifs中有任務。你需要使用if($ key == ...',或者如果使用'($ key === ...'。 – jh1711

+0

),那麼爲什麼使用'foreach'數組重新分配變量而不是引用數組直接?'echo'english:'。$ typeArray ['en_value'];'是一個更簡單的方法來做到這一點 – Machavity

+0

讓我知道你是否需要任何幫助我的答案。 –

回答

3

您不必將它們分配給單獨的變量。用下面的代碼代替你的代碼:

echo "english: ".$typeArray['en_value']."\n"; 
echo "spanish: ".$typeArray['es_value']."\n"; 
echo "german: ".$typeArray['de_value']."\n"; 
+0

謝謝傑西。顯然我這樣複雜超過我不得不::) – d1ch0t0my

+0

沒問題!請接受我的回答。 –

+0

謝謝你的接受。 –