使JSON数组与Flot兼容

时间:2011-02-09 09:54:12

标签: php javascript jquery json flot

我有一些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数组的最佳方法是什么进入正确的形式,以便阅读并生成图表。

2 个答案:

答案 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编码。