【问题标题】:How to save pairs of data into an one array如何将数据对保存到一个数组中
【发布时间】:2011-04-03 18:50:14
【问题描述】:

我有 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";
}

?>

【问题讨论】:

标签: php arrays


【解决方案1】:

试试

$array[(string)$currency] = $rate;

而不是

$array = array((string)$currency => $rate);

【讨论】:

    【解决方案2】:

    如果您希望有多个货币 + 汇率对,您将需要一个包含子项目的数组,每个子项目都由货币 + 汇率组成。

    通常,您将首先初始化您的数组:

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

    【讨论】:

    • 谢谢!很好的解释!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多