2017-11-07 10 views
1

PHP/JSONの問題を解決するために苦労しています。私は、JSONファイルをプルダウンするURLを使って株式市場の価格設定を示すスクリプトを書いています。私はPHPが初めてで、JSONファイルの個々の要素にアクセスできないようです。JSONとPHP - 証券取引所からデータを引き出す

ここ

は私のスクリプトです:

http://data.asx.com.au/data/1/share/TLS/prices?interval=daily&count=1

$price = file_get_contents('http://data.asx.com.au/data/1/share/TLS/prices?interval=daily&count=1'); 
$fileprices = json_decode($price, true); 
print_r ($fileprices); 

これが返されます。

[data] => Array (
    [0] => Array (
     [code] => FET 
     [close_date] => 2017-11-06T00:00:00+1100 
     [close_price] => 2.81 
     [change_price] => 0.01 
     [volume] => 85278 
     [day_high_price] => 2.83 
     [day_low_price] => 2.78 
     [change_in_percent] => 0.357% 
     ) 
    ) 

にはどうすればいいの要素[コード]をアクセスし、データのFETまたは任意の他の要素を返すことができますか?

私は成功していない多くの方法を試しました。どんな助けもありがとう。

+1

あなたは '$ fileprices ['data'] [0] ['code']' ..? –

+0

これを行うには** echo $ fileprices ['data'] [0] ['code'] ** – Dave

+0

@Zaheer Attarデータはどうですか? – Dave

答えて

0

この

$price = file_get_contents('http://data.asx.com.au/data/1/share/TLS/prices?interval=daily&count=1'); 
$fileprices = json_decode($price, true); 
$data = $fileprices['data'][0]; 

を試してみて、あなたは[ 'コード'] $データをエコーし​​ようとすることができます。またはエコー$データ['close_price'];または

+0

ありがとうございます。私は上記のバリエーションを使用して...非常にうまくいくようです。 – mitchy

+0

@mitchyアップアップしてみてください。もしこの答えが役に立つのであれば、緑色のチェックをしてください。D –

1

複数の要素がapi呼び出しを介して返された場合、$fileprices['data']をループしてforEach()を使用して、必要な要素を取得できます。

forEach($fileprices['data'] as $key=>$value) { 
    print_r($filePrices['data'][$key]['code']); 
} 
+0

これもうまくいきます!ありがとうございました。 – mitchy

0

Iは、一見理由もなく連想配列に全体応答を変換する、json_decode(), trueフラグを渡すない示唆する。 JSONオブジェクトはデフォルトでオブジェクトです。この場合、配列に変換する必要はありません。何も間違っていませんが、理由もありません。

これで、デフォルトの動作であるjson_decode()を使用して、探しているプロパティを取得する方法の例を示します。

<?php 
$response = file_get_contents('http://data.asx.com.au/data/1/share/TLS/prices?interval=daily&count=1'); 
$response = $response ? json_decode($response) : null; 

if ($response instanceof StdClass) { 
    echo $response->data[0]->code."\n"; 
    echo $response->data[0]->close_price."\n"; 
    echo $response->data[0]->change_price."\n"; 
    // etc... 
} 
+0

ありがとうございました。これはうまく機能しています。 – mitchy

関連する問題