2017-11-11 39 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

谢谢你的接受。 –