Недавно у меня появилось некоторое представление о преобразовании результатов запроса mysql в json для системы викторины. Результаты запроса содержат множество вопросов и связанных с ними вопросов. Выполненная процедура направлена на то, чтобы поставить эти вопросы и ответы в многомерный массив, а затем преобразовать его в json для построения викторины db. Я готов использовать JS-процедуру (модуль викторины), которая работает с ниже упомянутой структурой JSON. Но строить эту структуру, я застрял с помощью следующей процедуры PHP:Многомерный массив для структуры JSON в PHP
код в PHP:
$query = "SELECT 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['introduction'] = "Introduction text goes here";
while ($rows = mysqli_fetch_assoc($result_quiz)) {
$final_quiz['questions']['question'] = $rows['question'];
$final_quiz['questions']['question']['answers'] = array($rows['answers'], "correct"=> $rows['correct']);
}
// convert to JSON
$json = json_encode($final_quiz);
echo $json;
Ожидаемое Вывод в формате JSON:
{
"introduction":"Some introductory text here",
"questions":[
{
"question":"Question number one here?",
"answers":["some incorrect answer", "a correct answer", "another incorrect answer"],
"correct":1}, // indicates an array key that is relates to keys in "answers"
...
]
}
Как организовать многомерный массив чтобы получить вышеупомянутую структуру json? Любая помощь будет оценена по достоинству.
ОБНОВЛЕНИЕ
Значение в правильных клавишах индексов ответов ключей, то есть, если у нас есть «правильные»: 1, что будет означать второго значения ответов ключевых. Правильными значениями ответов, которые исходят от MySQL, являются boolean (TRUE/FALSE). Итак, прежде чем поместить все ответы в answers_array_key как набор ответов, следует помнить, что новый присвоенный индексный массив для ответа с TRUE-значением помещал этот индексный массив в correct_array_key как значение. Пример:
....
"answers":[0:"some incorrect answer", 1:"a correct answer", 2:"another incorrect answer"],
"correct":1}, // this is correct answer key
....
Надеюсь, что это объяснит идею желаемой ударной конструкции, упомянутой выше.
спасибо за ваш ответ, но мне нужно поместить результат запроса в многомерный массив «правильно» (while loop), чтобы получить вышеупомянутую структуру json. – Dozent
результат различается в массивах ответов, а именно только первый вариант печати и первый правильный ключ печатает. Посмотрите в ** ОБНОВЛЕНО ** раздел моего вопроса. I pt некоторые уточнения – Dozent