我正在尝试使用flot从我的SQL数据库中绘制数据,这是使用php然后json编码收集的。
目前看起来像:
[{"month":"February","data":482},{"month":"March","data":0}]
然而,对于flot来说,数据需要采用
的形式[X AXIS VALUE, Y AXIS VALUE],[X AXIS VALUE, Y AXIS VALUE],[X AXIS VALUE, Y AXIS VALUE]
ETC ..
我怎么能转换它?
答案 0 :(得分:1)
使用map
返回数组:
var flotData = data.map(function (el) {
return [el.month, el.data];
});
console.log(flotData); // [["February", 482], ["March", 0]]
答案 1 :(得分:1)
基本过程是将数据转换为数组(或对象,如果您愿意),然后拉出每个绘图点的数据并将其推送到数组中。然后,将该数组转换回字符串。这是一个例子:
// SAMPLE DATA
$json_string = '[{"month":"February","data":482},{"month":"March","data":0}]';
// DEFAULT
$all_points_array = array();
// JSON DECODE THE STRING AND TURN IT INTO AN ARRAY
$json_array = json_decode($json_string, true);
// LOOP THROUGH THE PLOT POINTS AND ADD EACH SET TO AN ARRAY
foreach ($json_array AS $plot_points) {
$all_points_array[] = '['.$plot_points['month'].','.$plot_points['data'].']';
}
// CONVERT THE ARRAY TO A STRING, SEPARATED BY COMMAS
$all_points = implode(',', $all_points_array);
// PRINT OUT YOUR STRING
echo $all_points;