2012-05-11 18 views
-5

私はこのYahoo APIについて約1ヶ月間不思議でした。私はyqlを取得し、株価のデータを取得しました。phpを使用してjsonから配列を取得する方法

は私の配列は次のようになります。配列から

Ask 
Bid 
AskRealtime 
BidRealtime 
LastTradeDate 
LastTradePriceOnly 
LastTradeTime 

、オートリフレッシュHTMLテーブルにそれを印刷:

<table width="200" border="1"> 
    <tr> 
    <td>Ask</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>BID</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>AskRealime</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>BidRealtime</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>LastTradeDate</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>LastTradePriceOnly</td> 
    <td>Value</td> 
    </tr> 
    <tr> 
    <td>LastTradeTime</td> 
    <td>Value</td> 
    </tr> 
</table> 

Array 
(
    [query] => Array 
    (
     [count] => 5 
     [created] => 2012-05-11T01:14:55Z 
     [lang] => en-US 
     [diagnostics] => Array 
     (
      [publiclyCallable] => true 
      [redirect] => Array 
      (
       [from] => http://datatables.org/alltables.env 
       [status] => 301 
       [content] => http://www.datatables.org/alltables.env 
      ) 

      [url] => Array 
      (
       [0] => Array 
       (
        [execution-start-time] => 425 
        [execution-stop-time] => 865 
        [execution-time] => 440 
        [proxy] => DEFAULT 
        [content] => http://datatables.org/alltables.env 
       ) 

       [1] => Array 
       (
        [execution-start-time] => 884 
        [execution-stop-time] => 1097 
        [execution-time] => 213 
        [proxy] => DEFAULT 
        [content] => http://www.datatables.org/yahoo/finance/yahoo.finance.quotes.xml 
       ) 

       [2] => Array 
       (
        [execution-start-time] => 1307 
        [execution-stop-time] => 1307 
        [execution-time] => 0 
        [proxy] => DEFAULT 
        [content] => http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX 
       ) 
      ) 

      [query] => Array 
      (
       [execution-start-time] => 1105 
       [execution-stop-time] => 1308 
       [execution-time] => 203 
       [params] => {url=[http://download.finance.yahoo.com/d/quotes.csv?f=aa2bb2b3b4cc1c3c6c8dd1d2ee1e7e8e9ghjkg1g3g4g5g6ii5j1j3j4j5j6k1k2k4k5ll1l2l3mm2m3m4m5m6m7m8nn4opp1p2p5p6qrr1r2r5r6r7ss1s7t1t7t8vv1v7ww1w4xy&s=XAUUSD%3DX,XAGUSD%3DX,PLN12.NYM,PAK12.NYM,USDCAD%3DX]} 
       [content] => select * from csv where [email protected] and columns='Ask,AverageDailyVolume,Bid,AskRealtime,BidRealtime,BookValue,Change&PercentChange,Change,Commission,ChangeRealtime,AfterHoursChangeRealtime,DividendShare,LastTradeDate,TradeDate,EarningsShare,ErrorIndicationreturnedforsymbolchangedinvalid,EPSEstimateCurrentYear,EPSEstimateNextYear,EPSEstimateNextQuarter,DaysLow,DaysHigh,YearLow,YearHigh,HoldingsGainPercent,AnnualizedGain,HoldingsGain,HoldingsGainPercentRealtime,HoldingsGainRealtime,MoreInfo,OrderBookRealtime,MarketCapitalization,MarketCapRealtime,EBITDA,ChangeFromYearLow,PercentChangeFromYearLow,LastTradeRealtimeWithTime,ChangePercentRealtime,ChangeFromYearHigh,PercebtChangeFromYearHigh,LastTradeWithTime,LastTradePriceOnly,HighLimit,LowLimit,DaysRange,DaysRangeRealtime,FiftydayMovingAverage,TwoHundreddayMovingAverage,ChangeFromTwoHundreddayMovingAverage,PercentChangeFromTwoHundreddayMovingAverage,ChangeFromFiftydayMovingAverage,PercentChangeFromFiftydayMovingAverage,Name,Notes,Open,PreviousClose,PricePaid,ChangeinPercent,PriceSales,PriceBook,ExDividendDate,PERatio,DividendPayDate,PERatioRealtime,PEGRatio,PriceEPSEstimateCurrentYear,PriceEPSEstimateNextYear,Symbol,SharesOwned,ShortRatio,LastTradeTime,TickerTrend,OneyrTargetPrice,Volume,HoldingsValue,HoldingsValueRealtime,YearRange,DaysValueChange,DaysValueChangeRealtime,StockExchange,DividendYield' 
       ) 

       [javascript] => Array 
       (
        [execution-time] => 266 
        [instructions-used] => 302754 
        [table-name] => yahoo.finance.quotes 
       ) 

       [warning] => Unable to sort response according to field 'Ask,Bid,AskRealtime,BidRealtime,LastTradeDate,LastTradePriceOnly,LastTradeTime'. 
       [user-time] => 1373 
       [service-time] => 653 
       [build-version] => 27222 
      ) 

      [results] => Array 
      (
       [quote] => Array 
       (
        [0] => Array 
        (
         [symbol] => XAUUSD=X 
         [Bid] => 1590.9498 
         [AskRealtime] => 
         [BidRealtime] => 
         [LastTradeDate] => 5/11/2012 
         [LastTradePriceOnly] => 1590.5499 
         [LastTradeTime] => 9:12pm 
         [Ask] => 1590.15 
        ) 

        [1] => Array 
        (
         [symbol] => XAGUSD=X 
         [Bid] => 
         [AskRealtime] => 
         [BidRealtime] => 
         [LastTradeDate] => 5/10/2012 
         [LastTradePriceOnly] => 29.136 
         [LastTradeTime] => 5:27pm 
         [Ask] => 
        ) 

        [2] => Array 
        (
         [symbol] => PLN12.NYM 
         [Bid] => 
         [AskRealtime] => 1486.50 
         [BidRealtime] => 1486.00 
         [LastTradeDate] => 5/11/2012 
         [LastTradePriceOnly] => 1486.00 
         [LastTradeTime] => 8:44pm 
         [Ask] => 
        ) 

        [3] => Array 
        (
         [symbol] => PAK12.NYM 
         [Bid] => 
         [AskRealtime] => 616.00 
         [BidRealtime] => 609.40 
         [LastTradeDate] => 5/11/2012 
         [LastTradePriceOnly] => 658.80 
         [LastTradeTime] => 8:00pm 
         [Ask] => 
        ) 

        [4] => Array 
        (
         [symbol] => USDCAD=X 
         [Bid] => 1.0033 
         [AskRealtime] => 
         [BidRealtime] => 
         [LastTradeDate] => 5/11/2012 
         [LastTradePriceOnly] => 1.0034 
         [LastTradeTime] => 9:13pm 
         [Ask] => 1.0035 
        ) 
       ) 
      ) 
     ) 
    ) 

は、私は次のようなデータを取得したいです

何か提案がありますか?

foreach ($array['query']['results']['quote'] as $quote) { 
    echo $quote['Ask']; 
    echo $quote['Bid']; 
    ... 
} 

$arrayは、このデータが属する変数の名前であること:あなたはこのようにそれを介して必要なデータやループにアクセスできるように

+0

問題は何ですか?データを取得するか、htmlを作成しますか? – JJJ

+0

多次元配列の特定の部分を取得する方法について質問していますか? – arma

+0

私は、Ask、bid、AskRealtimeのデータをhtmlテーブルの相対tdに印刷したいとします。 –

答えて

1

が見えます。私はHTMLの構築をあなたに任せます。

+0

多くの多くのあなたに –

+0

こんにちはdeceze ... ERRが発生しました!警告:115行目の/public_html/api/index.phpのforeach()に無効な引数が指定されました。もう一度私に賛成できますか? –

+0

自分でデバッグを試してください。 'var_dump($ array)'と 'var_dump($ array ['query'])'のようなサブキーを使って、あなたが扱っているものとアクセスする必要があるキーを見つけ出します。 – deceze

関連する問題