2014-12-25 101 views
-1

我似乎無法得到這個工作權利,它只是返回每個value0。我只想要data1下的第一個鍵,所以值爲1111和3333.如果我將一個鍵添加到value0,我會得到「1」作爲它的值,並顯示它們的相同數量。在這個例子中有四個,只有兩個應該返回。如何在foreach中選擇foreach()的第一個鍵()

JSON:

{ 
"json": "success", 
"data": [ 
    { 
     "data0": "123", 
     "data1": [ 
      { 
       "value0": "1111", 
       "value1": "aaaa" 
      }, 
      { 
       "value0": "2222", 
       "value1": "bbbb" 
      } 
     ] 
    }, 
    { 
     "data0": "abc", 
     "data1": [ 
      { 
       "value0": "3333", 
       "value1": "cccc" 
      }, 
      { 
       "value0": "4444", 
       "value1": "dddd" 
      } 
     ] 
    } 
], 
"number": 300, 
"end": "" 
} 

PHP:

foreach($json->data as $data) { 
    foreach($data->data1 as $value) { 
     echo "{$value->value0}<br>"; 
    } 
} 
+1

'的foreach($ json->數據$數據)回聲$數據 - >數據1 [0] - > value0;' – deceze

+0

我不能選擇這個答案,但我會。我很接近。我把鑰匙放在了錯誤的地方。這也將它清理成一個foreach()。 – Brando

回答

0

如果希望兩個數組索引0

$json = json_decode($json, true); 
foreach($json['data'] as $data) { 
    echo $data['data1'][0]['value0']; //11113333 
} 

或直接使用無需的foreach爲獲得一個價值

echo $json['data'][0]['data1'][0]['value0']; //1111 
+0

謝謝我想我會選擇這個作爲答案。它與@deceze幾乎完全相同。 0索引是我需要的。 – Brando

0

爲了讓您的對象版本,你可以循環像這樣:

$jsonObj = json_decode($json); 

foreach($jsonObj as $value) { 
    foreach($value as $data => $object) { 
      echo $object->data1[0]->value0; 
     } 
    } 

應該給你:

11113333 
+0

這沒有工作的權利。第二個foreach()與其他答案一樣工作,但是嵌套在第一個中,它周圍有錯誤。 – Brando

+0

這很奇怪,當我運行它時,沒有任何錯誤,它迴應了這些值。 – Rasclatt