2013-02-04 48 views
0
$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; 
      } 
     } 
    } 

是給我:的SimpleXML和foreach錯誤

Warning: Invalid argument supplied for foreach() 

,我不明白爲什麼。這裏的想法是貫穿在那裏列出的每個買單,並比較價格,如果訂單更高,則將其設置爲最佳。這樣做直到所有訂單完成,變量將列出最佳價格,最佳電臺和稍後使用的stationID。我查了一些StackOverflow的問題,引用等等。許多例子報告三深都很好,所以我不明白這是一個無效的參數。

任何想法?

回答

1

請問您可以添加您的XML或樣本XML的架構?

我是新來的PHP,但根據PHP的foreach樣品, 我猜它是「的foreach」行導致此警告,也許它應該像:

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

如果$讀者 - > buy_orders是數組表達你不應該添加 ' - >序'

請參考 http://php.net/manual/en/control-structures.foreach.php

的foreach(陣列運算爲$值) 聲明

我沒有測試我的答案,你可以試試,如果這對你有用,並讓我知道。 謝謝!

0

經過仔細檢查XML文檔後,我發現我跳過了一個關卡。它應該是

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