我正在尝试将从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数据库收到的选项变量数组?
答案 0 :(得分:2)
您需要将$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'];
}
答案 1 :(得分:0)
试试这个
<?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函数。