我有一些PHP代码在调用$ .getJSON时输出JSON数组:
.
.
.
$data = array_combine($date_dispatched,$amount);
echo json_encode($data);
这是通过以下方式收集的:
$.getJSON('statistics_get.php',function(output) {
$.plot($("#graph_1"), [{
data: output,
lines: {show:true}
}]
);
});
现在,使用firebug,我得到的回复是:
{"0":"0","1296658458000":"566","1296725534000":"789","1297072385000":"890","1297072388000":"435"}
Flot没有处理这些数据。我相信Flot需要它的形式[[1,2],[4,5],[6,9]]等等。所以我的问题是,获取这个JSON数组的最佳方法是什么进入正确的形式,以便阅读并生成图表。
答案 0 :(得分:2)
如果您在这里查看示例二:http://php.net/manual/en/function.json-encode.php 你会看到你可以让json_encode返回一个数组而不是一个关联对象 这不是解决方案而不是
var flotArr = []
var cnt=0;
for (var o in data) flotArr[cnt++]=[o,data[o]]
答案 1 :(得分:1)
请勿使用array_combine
,因为它无法满足您的需求。在PHP中执行“zip”有点不愉快,但您应该能够管理:
function make_pair($date, $amount) {
return array($date, $amount);
}
$data = array_map('make_pair', $date_dispatched, $amount);
然后JSON编码。