Как преобразовать строки из MySql в массив JSON

Я пытаюсь преобразовать свои данные, полученные с MySql в JSON, в следующем формате –

[ { "question": "This is a question", "options": [ "Option which may contain double or single quoted text", "Option 2", "Option 3", "Option 4" ] } ] 

Мой соответствующий PHP-код до сих пор –

 <?php $result = mysql_query("select * from test_table limit 5", $db); $json_response = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $option_01 = $row['Option_1']; $option_02 = $row['Option_2']; $option_03 = $row['Option_3']; $option_04 = $row['Option_4']; $row_array['question'] = $row['Question']; // I am unable to format Options ($option_01,$option_02,$option_03,$option_04) into desired Array as mentioned in starting $row_array['options'] = ""; array_push($json_response,$row_array); } echo json_encode($json_response); ?> 

Но я зациклился на том, как создать массив переменных параметра, полученных из базы данных MySql?

Вам нужно сделать $row_array['options'] массив

 $row_array['options'] = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $row_array['options'][] = $row['Option_1']; $row_array['options'][] = $row['Option_2']; $row_array['options'][] = $row['Option_3']; $row_array['options'][] = $row['Option_4']; } 

Кроме того, помните, что функции mysql_ устарели

Попробуй это

 <?php $result = mysql_query("select * from test_table limit 5", $db); $json_response = array(); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { $ans = array(); $ans["question"]= $row["question"]; $ans["options"]=$row; $json_response[]=$ans; } echo json_encode($json_response); ?> 

Это приведет к тому же результату, который вы ожидаете, но в массиве параметров вы также получите поля вопросов. Но это можно игнорировать, работая над результатом json.

Примечание. – Функции Mysql устарели в более новых версиях.