我使用PHP从postgreSQL中提取数据,我将使用它来构建GoogleChart dataTables。 GoogleCharts接受数组数组(格式:[[data1,data2,data3],[data4,data5,data6]]。
为了正确格式化数组,我使用以下语法:
$GoogleChartString ="["; //opening bracket inserted
while ($row = pg_fetch_row($QueryResult))
{
$GoogleChartString = $GoogleChartString . "[" .implode(",", $row) . "],";
}
$GoogleChartString = substr($GoogleChartString,0,-1)."]";
现在,有些字段是字符串,有些是数字。 GoogleCharts DataTables希望字符串是单引号。但是,pg_fetch_row不会在字符串周围放置任何分隔符。我怎样才能以优雅高效的方式生成GoogleCharts所期望的适当格式?
答案 0 :(得分:1)
一个好消息和一个坏消息。
坏消息:到目前为止,您确实编写了太多代码,您实际上浪费了字符,可能您自己的代码仍然存在,因此您无法解决此问题。
好消息:在PHP中构建一个数组,然后使用json_encode
函数,您无需关心格式化。这是Json。
$googleChart = array();
while ($row = pg_fetch_row($QueryResult)) {
$googleChart[] = $row;
}
$googleChartString = json_encode($googleChart);
每当您处理某些API时,请查找规范(例如Json)。然后在PHP手册中查看该规范的支持方式。通常是开箱即用的,否则你也可以使用很多库。
修改强> 的
代码片段(Demo):
$data = array(array(data1, data2, data3),array(data4, data5, data6));
echo json_encode($data);
输出:
[["data1","data2","data3"],["data4","data5","data6"]]