Php 基于JSON的测验-将SQL结果分发到多维数组中
我有一套存储在mysql中的测验系统的问题和答案。我实现的过程旨在将这些问题和答案放入多维数组,然后将其转换为json格式。但结果并不令我满意。我被以下程序卡住了: PHP代码:Php 基于JSON的测验-将SQL结果分发到多维数组中,php,arrays,json,multidimensional-array,mysqli,Php,Arrays,Json,Multidimensional Array,Mysqli,我有一套存储在mysql中的测验系统的问题和答案。我实现的过程旨在将这些问题和答案放入多维数组,然后将其转换为json格式。但结果并不令我满意。我被以下程序卡住了: PHP代码: $query = "SELECT s1.id, s1.question, s2.answers, s2.correct FROM `questions` s1, `answers` s2 WHERE s1.id=s2.questionid AND s1.courseid=".$_
$query = "SELECT s1.id, s1.question, s2.answers, s2.correct
FROM `questions` s1, `answers` s2
WHERE s1.id=s2.questionid AND s1.courseid=".$_POST['courseid']."";
$result = mysqli_query($mysqli, $query) or die ("<b>Select failed:</b> ".mysqli_error($mysqli));
$final_quiz = array();
$final_quiz['info']['course'] = $_POST['courseid'];
while ($rows = mysqli_fetch_assoc($result_quiz)) {
$final_quiz['quiz']['id'] = $rows['id'];
$final_quiz['quiz']['question'] = $rows['question'];
$final_quiz['quiz']['answers']['option'] = $rows['answers'];
$final_quiz['quiz']['answers']['correct'] = $rows['correct'];
}
// convert to JSON
$json = json_encode($final_quiz);
echo $json;
{
"info":{"course":"Some value here"}
"quiz":[
{
"question":"Question number one here?",
"answers":[
{"option":"some incorrect answer", "correct":"0"},
{"option":"a correct answer", "correct":"1"},
{"option":"another incorrect answer", "correct":"0"}
]
},
...
]
}
如何组织多维数组以获得上述json结构?任何帮助都将不胜感激。使用问题ID作为
测验
数组的键
while ($row = mysqli_fetch_assoc($result_quiz)) {
$question_id = $row['id'];
if (!isset($final_quiz['quiz'][$question_id])) {
$final_quiz['quiz'][$question_id] =
array('question' => $row['question'], 'answers' => array());
}
$final_quiz['quiz'][$question_id]['answers'][] =
array('option' => $row['answers'], 'correct' => $row['correct']);
}
太棒了!!感谢您提示将问题ID用作json中的键:)