Josh Walshaw
Josh Walshaw

Reputation: 210

Get JSON Array With PHP

I have the following JSON string, I'm wanting to cycle through the 'sub' items and print them out as HTML Select Options but for some reason I can't quite get hold of them.

Only used JSON a couple times before so it's probably a rookie mistake somewhere.

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

I have the following which let's me echo out the Question Value but how would I loop through each of the 'sub' arrays? (There's only ever going to be 1 question which is why I'm storing it in a single variable)

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

Upvotes: 0

Views: 287

Answers (2)

Jeff
Jeff

Reputation: 6953

Add another loop inside the existing one:

$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>"; 
  }
}

Upvotes: 4

Andre Rodrigues
Andre Rodrigues

Reputation: 362

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

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

Upvotes: 0

Related Questions