我有一个用PHP创建的数组,然后通过JSON编码到我的JavaScript中。

数组在这里定义:

$stmt -> bind_result($match_id, $hero, $mmr);
while($stmt -> fetch()){
    $grapharray[] = array($hero => $mmr);
}


和JSON编码在这里:

$grapharray_labelled = array(
    "label" => "MMR Over time",
    "data" => $grapharray
);


和这里:

var graphdata = <?php echo JSON_encode($grapharray_labelled); ?>;

运行网页时的输出是graphdata =:

{
"label":"MMR Over time",
"data":[
        {"Rubick":6524},
        {"Lion":6550},
        {"Magnus":6565},
        {"Keeper of the Light":6566}
        ]
}


但是我希望这样:

{
"label":"MMR Over time",
"data":[
        ["Rubick", 6524],
        ["Lion", 6550],
        ["Magnus", 6565],
        ["Keeper of the Light", 6566]
        ]
}


原因:
我想更改格式,因为我试图让flot正常工作,并且flot接受数组数组作为数据类型。

否则:是否有更好的方法将数组从PHP转换为具有所需格式的JavaScript?

最佳答案

更改此:

$grapharray[] = array($hero => $mmr);


至:

$grapharray[] = array($hero, $mmr);

09-10 10:45