SimpleXML and foreach error


$typeID = 34;
        $reader = simplexml_load_file("http://api.eve-central.com/api/quicklook?typeid=".$typeID);
    foreach ($reader -> buy_orders -> order as $orderrow) {
        if($orderrow->price > $bestPrice)
        {
            if($orderrow->security >= "0.5")
            {
                $bestPrice = $orderrow->price;
                $bestStation = $orderrow->station_name;
                $bestStationID = $orderrow->station;
            }
        }
    }

正在给我:

Warning: Invalid argument supplied for foreach()

我不明白为什么。这里的想法是浏览那里列出的每个购买订单,并比较价格,如果订单更高,则将其设置为最佳。这样做,直到所有订单都完成,变量将列出最佳价格、最佳电台和稍后使用的电台ID。我看了很多StackOverflow问题、参考文献等。许多例子报告说,深入三个是可以的,所以我不明白为什么这是一个无效的论点。

有什么想法吗?

您能添加xml或示例xml的模式吗?

我是PHP新手,但根据PHP foreach示例,我想是"foreach"这条线引起了这个警告,也许它应该像一样工作

foreach ($reader -> buy_orders as $orderrow) {
...
}

如果$reader->buy_orders是数组表达式,则不应添加"->order">

请参阅http://php.net/manual/en/control-structures.foreach.php

foreach(array_expression为$value(报表

我没有测试我的答案,如果这对你有用,你可以试试,然后告诉我。谢谢

在仔细检查XML文档后,我发现我跳过了一个级别。应该是

foreach($reader -> quickorder -> buy_orders -> order as $buyOrder)

最新更新