2017-06-11 24 views
1

我正在解析PHP中的JSON文件,並遇到了一些數據結構的問題,我無法弄清楚如何理解。這是一個數據節點的樣子:在PHP中解析JSON時獲取兄弟值

{ 
    "data": [{ 
     "title": "Some title", 
     "subtitle": "Some subtitle", 
     "description": "Some description", 
     "labels": [{ 
      "type": "itemId", 
      "raw": "someId12345" 
     }, { 
      "type": "itemtype", 
      "raw": "general" 
     }] 
    }] 
} 

這是我使用的是非常基本的代碼:

$url = 'data.json'; 
$content = file_get_contents($url); 
$json = json_decode($content, true); 

foreach($json['data'] as $item) { 
    return $item['title']; 
    return $item['description']; 
} 

獲取標題和描述的作品,但我與這些標籤掙扎。我想獲得類型itemId(即someId12345)的「原始」值,但我不知道如何。標籤不固定的順序,否則我可以只使用這樣的事情來獲得ID:

return $item['labels'][0]['raw']; 

我試圖創建一個單獨的foreach,但只給了我所有的值一個身份不明的指標。

foreach($json['data'] as $ID) { 
    if($ID['labels']['itemId'] == $_GET['labels']['itemId']) { 
     return $ID['raw']; 
     break; 
     } 
} 

我怎樣才能得到同級價值,所以我想這個數據結束:

Some title 
Some description 
someId12345 

回答

2

它是不是從不同是什麼你已經做:

foreach ($json['data'] as $item) { 
    foreach ($item['labels'] as $label) { 
    var_dump($label['raw']); 
    } 
} 

Demo

要過濾type您可以使用if構造:

if ($label['type'] === 'itemId') { 
    var_dump($label['raw']); 
} 
+0

謝謝。這適用於獲取所有原始值,但我想單出與itemId類型關聯的原始值。我會怎麼做呢? – yayheartbeat