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;
            }
        }
    }

私に与えている:

Warning: Invalid argument supplied for foreach()

理由がわかりません。ここでの考え方は、そこにリストされている各買い注文を実行し、価格を比較して、注文が高い場合はそれを最良に設定することです。すべての注文が完了し、変数が最良の価格、最良のステーション、および後で使用されるステーション ID をリストするまで、これを行います。多くの StackOverflow の質問、参照などを見てきました。多くの例では、3 つの深さで問題ないと報告されているため、無効な引数である理由がわかりません。

何か案は?

4

2 に答える 2

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) ステートメント

私は自分の答えをテストしていません。ありがとう!

于 2013-02-04T02:31:47.183 に答える
0

XML ドキュメントを詳しく調べたところ、あるレベルを飛ばしていたことがわかりました。だったはず

foreach($reader -> quickorder -> buy_orders -> order as $buyOrder)
于 2013-02-04T02:45:56.827 に答える