我有XML文件,其中我有货币和费率的名称。我想保存这些货币并将其作为数组进行比率,但它不起作用,当我用foreach回显数组时,只显示最后一个。 这是我的代码:
<?php
$xml = simplexml_load_file("http://www.ecb.int/stats/eurofxref/eurofxref-daily.xml");
$array=array();
foreach ($xml->children() as $cubeMain) {
foreach ($cubeMain->children() as $cubeTime) {
echo "Kursid seisuga: " . $cubeTime['time'];
foreach ($cubeTime->children() as $cubeCurr) {
$currency=$cubeCurr['currency'];
$rate=$cubeCurr['rate'];
$array = array((string)$currency => $rate);
echo $currency . " " . $rate . "<br />";
}
}
}
foreach ($array as $currency => $rate){
echo "$currency: $rate\n";
}
?>
答案 0 :(得分:3)
试
$array[(string)$currency] = $rate;
而不是
$array = array((string)$currency => $rate);
答案 1 :(得分:1)
如果您希望拥有多个货币+费率对,您需要一个包含子项的数组,每个子项都由货币+费率组成。
通常,您首先要初始化数组:
$array = array();
然后,对于每种货币,您将在该数组中添加一个项目:
$array[] = array((string)$currency => $rate);
有了这个,你将有一个很长的清单,但没有按货币编制索引 - 这可能没那么有用。
相反,您可能更愿意使用第二种解决方案:
$array[(string)$currency] = $rate;
有了这个,你的阵列将货币作为密钥 - 这使得以后更容易找到你的数据。
使用第二个解决方案,您的阵列将按货币编制索引。
这意味着您可以通过这种方式查找特定货币的汇率:
echo $array['EUR']; // if EUR is an exinsting currency
循环遍历所有数据:
foreach ($array as $currency => $rate) {
echo "$currency : $rate <br />";
}