Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将字符串从MySql转换为JSON数组_Php_Json - Fatal编程技术网

Php 如何将字符串从MySql转换为JSON数组

Php 如何将字符串从MySql转换为JSON数组,php,json,Php,Json,我正在尝试将从MySql接收的数据转换为JSON,格式如下- [ { "question": "This is a question", "options": [ "Option which may contain double or single quoted text", "Option 2", "Option 3", "Option 4"

我正在尝试将从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\u数组['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'];
}
另外,请记住,试试这个

<?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函数在较新版本中不推荐使用。

谢谢。我现在明白了。我也在尝试升级自己(关于mysql),但这需要时间。一旦stackoverflow的时限结束,我将接受答案。现在,投票表决:)