2017-02-21 38 views
1

顯示特定JSON數據我從JSON文件中使用的URL這樣的提取數據:替代方法在PHP

$html5=file_get_contents("url"); 

$data = json_decode($html5);  

echo $data->a->k->f; 

這將顯示$27.58這是正確的。

這裏是我的JSON數據:

{ 
"a":{ 
    "k":{ 
    "c":"tr", 
    "f":"$27.58", 
    "fb":"$30.35", 
    "ci":"12873809", 
    "cname":"Cdkeysgame_com", 
    "ep":"26.05", 
    "epb":"28.66", 
    "a":"5473091", 
    "it":"steam", 
    "sl":"0", 
    "l":null, 
    "lt":null, 
    "x":0, 
    "v":"retail", 
    "ne":0, 
    "so":0, 
    "tr":304, 
    "r":97, 
    "cf":1, 
    "p":"27.58317275", 
    "pb":"30.3467843", 
    "eci":"865723abbf1cbb952ad4d2da8a8c925e" 
    }, 
    "k_1":{ 
    "c":"gb", 
    "f":"$27.64", 
    "fb":"$30.40", 
    "ci":"1065801", 
    "cname":"World_of_games", 
    "ep":"26.10", 
    "epb":"28.71", 
    "a":"781851", 
    "it":"steam", 
    "sl":"0", 
    "l":null, 
    "lt":null, 
    "x":0, 
    "v":"all", 
    "ne":0, 
    "so":0, 
    "tr":1041328, 
    "r":99, 
    "cf":1, 
    "p":"27.6361155", 
    "pb":"30.39972705", 
    "eci":"d01a7cacb0e424123985bfe2e53a0523" 
    }, 
    "k_2":{ 
    "c":"ch", 
    "f":"$27.68", 
    "fb":"$30.44", 
    "ci":"696012", 
    "cname":"G_hard", 
    "ep":"26.14", 
    "epb":"28.75", 
    "a":"1287052", 
    "it":"steam", 
    "sl":"0", 
    "l":null, 
    "lt":null, 
    "x":0, 
    "v":"retail", 
    "ne":0, 
    "so":0, 
    "tr":10818, 
    "r":99, 
    "cf":1, 
    "p":"27.6784697", 
    "pb":"30.44208125", 
    "eci":"a6666c0a47acb70d14b757cd52f1b9cc" 
    }} 

我需要不使用k顯示相同的數據。例如我想:

echo $data->a->'Something that specifies first element of 'a' i.e k and not'k_1' and 'k_2'->f; 

由於我刮這個內容我不能改變任何結構或數據在這個JSON文件。

回答

1

如果你只是想a下的第一個入口,那麼,可以解碼作爲數組:

$data = json_decode($json, true); 

然後得到的$data['a']的第一個元素,並使用它。 current()還將努力:

echo reset($data['a'])['f']; 

或重新索引$data['a']數字和訪問的第一個0

echo array_values($data['a'])[0]['f']; 

,趕上他們:

foreach($data['a'] as $values) { 
    echo $values['f']; 
    //break; if you only want the first one 
} 
+0

我用這個代碼echo array_values($ data ['a'])[0] ['f'];並且我得到了這個錯誤不能使用類型爲stdClass的對象作爲數組 – user7587888

+0

因爲您沒有閱讀答案中的第一句和第一行代碼。 – AbraCadaver

+1

謝謝我忘了添加true :-) – user7587888

0

你可以這樣做,所以:

$object = json_decode($html5); 

foreach ($object->a as $element) { 
    echo $element->f; 
}