2017-02-10 58 views
0

我有以下JSON字符串,我想要循環訪問「子」項並將其打印爲HTML選項,但出於某種原因,我無法完全控制它們。使用PHP獲取JSON數組

之前只使用過JSON,所以它可能是某處的菜鳥錯誤。

{ 
    "1":{ 
     "question":"How happy are you with your car?", 
     "sub":[ 
     "Very Happy", 
     "Not So Happy", 
     "Unhappy", 
     "Very Unhappy" 
     ] 
    } 
} 

我有以下讓我回應問題價值,但我將如何循環通過每個'sub'數組? (這裏只有永遠會是1個問題這是爲什麼我將它存儲在一個變量)

$questionAnswer = json_decode($data->question,true); 
foreach ($questionAnswer as $key => $value) { 
    $question = $value['question']; 
} 
+0

現有的循環中:'foreach($ value ['sub'] as $ sub){echo $ sub; }' – Jeff

+0

@Jeff這是一個答案,而不是評論 – NDM

+0

@NDM是的,我現在做出了一個很好的...似乎很簡單的答案 – Jeff

回答

4

加入現有的一個內部另一個循環:

$questionAnswer = json_decode($data->question,true); 
foreach ($questionAnswer as $key => $value) { 
    $question = $value['question']; 

    echo $question."<br>"; 
    // value['sub'] contains the array of 'subs', so you can loop through that the same way 
    foreach ($value['sub'] as $sub) { // since the key will be 0,1,2 you might not need it here, so I omitted it. 
     echo $sub."<br>"; 
    } 
} 
+0

爲什麼要保留不需要的外部循環如果只有一個問題? – wogsland

+0

這個例子中只有一個問題,但很可能這是樣本數據,你不覺得嗎? – Jeff

+0

OP指定的「只會有1個問題」是全部。我只是謹防嵌套循環。 – wogsland

0
foreach ($questionAnswer as $key => $value) { 
    $question = $value['question']; 

    foreach ($value['sub'] as $answer) { 
     echo $answer; 
    } 
}