最后一个数组值会覆盖其他值

时间:2017-11-11 14:39:02

标签: php arrays

我无法理解从数组中访问值。我以为我有它,但现在撞墙了。我有以下数组:

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 个答案:

答案 0 :(得分:3)

您不必将它们分配给单独的变量。用以下代码替换您的代码:

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