我有this JSON file(缩短版本)并且需要针对每个问题#循环遍历它并将问题详细信息添加到MySQL DB。每个测验有10个问题。每个测验由网址,标题,图像和问题(数组)组成。每个测验有10个问题,4个答案选项。
我正在寻找一个起点,所以我可以开始循环并回答问题。任何帮助将不胜感激。谢谢!
手码数据提取 - 我想循环使用。
// this will be associated with every question in a quiz.
$url = $json['rows'][0]['URL'];
$Title = $json['rows'][0]['Title'];
$Questions = $json['rows'][0]['Questions'];
$Image = $json['rows'][0]['Image'];
// I need these to loop thorugh for Q1, Q2, Q3, etc..... for every Q# in row0
$Q1Text = $json['rows'][0]['Questions']['Question1']['Question Text'];
$Q1MediaURL = $json['rows'][0]['Questions']['Question1']['Question Media']['Media url'];
$Q1MediaType = $json['rows'][0]['Questions']['Question1']['Question Media']['Media Type'];
$Q1Answer1 = $json['rows'][0]['Questions']['Question1']['Answers']['Answer1']['Answer'];
$Q1Answer1Value = $json['rows'][0]['Questions']['Question1']['Answers']['Answer1']['Value'];
$Q1Answer2 = $json['rows'][0]['Questions']['Question1']['Answers']['Answer2']['Answer'];
$Q1Answer2Value = $json['rows'][0]['Questions']['Question1']['Answers']['Answer2']['Value'];
$Q1Answer3 = $json['rows'][0]['Questions']['Question1']['Answers']['Answer3']['Answer'];
$Q1Answer3Value = $json['rows'][0]['Questions']['Question1']['Answers']['Answer3']['Value'];
$Q1Answer4 = $json['rows'][0]['Questions']['Question1']['Answers']['Answer4']['Answer'];
$Q1Answer4Value = $json['rows'][0]['Questions']['Question1']['Answers']['Answer4']['Value'];
$Q2Text = $json['rows'][0]['Questions']['Question2']['Question Text'];
$Q2MediaURL = $json['rows'][0]['Questions']['Question2']['Question Media']['Media url'];
$Q2MediaType = $json['rows'][0]['Questions']['Question2']['Question Media']['Media Type'];
$Q2Answer1 = $json['rows'][0]['Questions']['Question2']['Answers']['Answer1']['Answer'];
$Q2Answer1Value = $json['rows'][0]['Questions']['Question2']['Answers']['Answer1']['Value'];
$Q2Answer2 = $json['rows'][0]['Questions']['Question2']['Answers']['Answer2']['Answer'];
$Q2Answer2Value = $json['rows'][0]['Questions']['Question2']['Answers']['Answer2']['Value'];
$Q2Answer3 = $json['rows'][0]['Questions']['Question2']['Answers']['Answer3']['Answer'];
$Q2Answer3Value = $json['rows'][0]['Questions']['Question2']['Answers']['Answer3']['Value'];
$Q2Answer4 = $json['rows'][0]['Questions']['Question2']['Answers']['Answer4']['Answer'];
$Q2Answer4Value = $json['rows'][0]['Questions']['Question2']['Answers']['Answer4']['Value'];
$Q3Text = $json['rows'][0]['Questions']['Question3']['Question Text'];
$Q3MediaURL = $json['rows'][0]['Questions']['Question3']['Question Media']['Media url'];
$Q3MediaType = $json['rows'][0]['Questions']['Question3']['Question Media']['Media Type'];
$Q3Answer1 = $json['rows'][0]['Questions']['Question3']['Answers']['Answer1']['Answer'];
$Q3Answer1Value = $json['rows'][0]['Questions']['Question3']['Answers']['Answer1']['Value'];
$Q3Answer2 = $json['rows'][0]['Questions']['Question3']['Answers']['Answer2']['Answer'];
$Q3Answer2Value = $json['rows'][0]['Questions']['Question3']['Answers']['Answer2']['Value'];
$Q3Answer3 = $json['rows'][0]['Questions']['Question3']['Answers']['Answer3']['Answer'];
$Q3Answer3Value = $json['rows'][0]['Questions']['Question3']['Answers']['Answer3']['Value'];
$Q3Answer4 = $json['rows'][0]['Questions']['Question3']['Answers']['Answer4']['Answer'];
$Q3Answer4Value = $json['rows'][0]['Questions']['Question3']['Answers']['Answer4']['Value'];
更新:这是我最终的工作代码。感谢您的帮助@Lou!
foreach($json['rows'] as $row){ // This will loop trough every rows in your array.
foreach($row['Questions'] as $question){ //This will loop trough all the questions of the current row.
echo ''.print_r($question).'<br>'; //You can access the array of your question here. using $question. For now it will just print it's content.
echo "<strong>Quiz URL:</strong> " . $row["URL"]. "<br>";
echo "<strong>Quiz Title:</strong> " . $row["Title"]. "<br>";
echo "<strong>Quiz Image:</strong> " . $row["Image"]. "<br><br><br>";
echo "<strong>Question Text:</strong> " . $question['Question Text']. "<br>";
echo "<strong>Media URL:</strong> " . $question['Question Media']['Media url']. "<br>";
echo "<strong>Media Type:</strong> " . $question['Question Media']['Media Type']. "<br>";
echo "<strong>Answer1:</strong> " . $question['Answers']['Answer1']['Answer'] . " | " . $question['Answers']['Answer1']['Value'] . "<br>";
echo "<strong>Answer2:</strong> " . $question['Answers']['Answer2']['Answer'] . " | " . $question['Answers']['Answer2']['Value'] . "<br>";
echo "<strong>Answer3:</strong> " . $question['Answers']['Answer3']['Answer'] . " | " . $question['Answers']['Answer3']['Value'] . "<br>";
echo "<strong>Answer4:</strong> " . $question['Answers']['Answer4']['Answer'] . " | " . $question['Answers']['Answer4']['Value'] . "<br>";
echo "<br>";
}
}
答案 0 :(得分:2)
因此,通过查看您当前的代码,我假设您已将json解码为数组。
现在,如果你想通过该数组循环。您可能想要使用foreach循环。如果可以帮到您,请参阅下面的代码:
foreach($json['rows'] as $row){ // This will loop trough every rows in your array.
foreach($row['Questions'] as $question){ //This will loop trough all the questions of the current row.
echo '<pre>'.print_r($question).'</pre><br><br>'; //You can access the array of your question here. using $question. For now it will just print it's content.
}
}
如果您需要进一步的帮助,请与我们联系。