$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()
我不明白为什么。这里的想法是贯穿其中列出的每个买单,并比较价格,如果订单更高,则将其设置为最佳。这样做直到所有订单完成并且变量将列出最佳价格,最佳站点和稍后要使用的stationID。我看过很多StackOverflow问题,参考文献等等。许多例子报告三个深度都很好,所以我不明白为什么这是一个无效的论点。
有什么想法吗?
答案 0 :(得分:1)
您能否添加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 as $ value) 声明
我没有测试我的答案,你可以尝试,如果这对你有用,让我知道。 谢谢!
答案 1 :(得分:0)
仔细检查XML文档后,我发现我跳过了一个级别。应该是
foreach($reader -> quickorder -> buy_orders -> order as $buyOrder)