Php 使用动态变量进行非法偏移

Php 使用动态变量进行非法偏移,php,arrays,Php,Arrays,我不明白为什么我会犯这样的错误: 警告:输入的偏移量非法 …第10行/index.php美元1.4141 警告:输入的偏移量非法 …/index.php第10行JPY 118.56 这是我的密码: <?php $xml = simplexml_load_file("eurofxref-daily.xml"); $array=array(); foreach ($xml->children() as $cubeMain) { foreach ($cubeMain->chi

我不明白为什么我会犯这样的错误:

警告:输入的偏移量非法 …第10行/index.php美元1.4141

警告:输入的偏移量非法 …/index.php第10行JPY 118.56

这是我的密码:

<?php
$xml = simplexml_load_file("eurofxref-daily.xml");
$array=array();
foreach ($xml->children() as $cubeMain) {
    foreach ($cubeMain->children() as $cubeTime) {
        echo "Time: " . $cubeTime['time'];
        foreach ($cubeTime->children() as $cubeCurr) {
            $currency=$cubeCurr['currency'];
            $rate=$cubeCurr['rate'];
            $array = array($currency => $rate);
            echo $currency . "&nbsp;" . $rate . "<br />";
        }
    }
}
?>

使用
$array=array((字符串)$currency=>$rate)

SimpleXML返回的是对象,而不是字符串——虽然它们有适当的
\uuu toString
方法,但当这些对象用作数组索引时,PHP不使用它们。

使用
$array=array((string)$currency=>$rate)


SimpleXML返回的是对象,而不是字符串——虽然它们有适当的
\uuuuToString
方法,但当这些对象用作数组索引时,PHP不会使用它们。

Ty,但是以后如何用值回显键呢?这是什么意思?使用对象本身对它们进行
echo
是可以的,因为它们在字符串上下文中使用时会正确地转换为字符串。您的代码甚至做到了这一点……我的目标是:1)将所有具有汇率的货币放入数组中2)从数组中打印货币和汇率。@Marko
foreach($array as$Currency=>$rate)echo“$Currency:$rate\n”Ty,但是以后如何用值回显键?你是什么意思?使用对象本身对它们进行
echo
是可以的,因为它们在字符串上下文中使用时会正确地转换为字符串。您的代码甚至做到了这一点……我的目标是:1)将所有具有汇率的货币放入数组中2)从数组中打印货币和汇率。@Marko
foreach($array as$Currency=>$rate)echo“$Currency:$rate\n”