如何将数据对保存到一个数组中

时间:2011-04-03 10:45:36

标签: php arrays

我有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 . "&nbsp;" . $rate . "<br />";
        }
    }
}

foreach ($array as $currency => $rate){
    echo "$currency: $rate\n";
}

?>

2 个答案:

答案 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 />";
}