Php ajax应答后解析的Highchart数据

Php ajax应答后解析的Highchart数据,php,json,jquery,highcharts,Php,Json,Jquery,Highcharts,我从jquery ajax函数收到了如下响应: ["{y:55,color:'red'}", "{y:21}", "{y:12}", "{y:6}", "{y:3}", "{y:3}"] 在我的PHP代码中,我通过数组中的json_encode进行编码: foreach($pp as $value){ $tmp[]='{y:'.round(100*$pp/$sum_pp,0).'}'; } echo json_encode(array("tableau"=>$tmp)); 我想在我的

我从jquery ajax函数收到了如下响应:

["{y:55,color:'red'}", "{y:21}", "{y:12}", "{y:6}", "{y:3}", "{y:3}"]
在我的PHP代码中,我通过数组中的json_encode进行编码:

foreach($pp as $value){ 
$tmp[]='{y:'.round(100*$pp/$sum_pp,0).'}';
}
echo json_encode(array("tableau"=>$tmp));
我想在我的Highchart图表中使用这个:

[{y:55,color:'red'}, {y:21}, {y:12}, {y:6}, {y:3}, {y:3}]
如何格式化数组以绘制答案?我这样做是为了能够改变一列在系列中的颜色


谢谢您的时间。

如果您有可能更改PHP代码,我会选择输出类似于Highcharts中使用的series对象的内容,请参阅

这是一个如下所示的对象:

{
    data: [y1, y2, y3],
    color: '#FF0000'
}
foreach($pp as $value){ 
    $tmp[] = round(100*$pp/$sum_pp,0);
}
echo json_encode(array(
    "data" => $tmp,
    "color" => '#FF0000'
));
这将使您的PHP代码如下所示:

{
    data: [y1, y2, y3],
    color: '#FF0000'
}
foreach($pp as $value){ 
    $tmp[] = round(100*$pp/$sum_pp,0);
}
echo json_encode(array(
    "data" => $tmp,
    "color" => '#FF0000'
));
另一方面,像你在问题中那样填写
$tmp
是不好的。更好的办法是:

foreach($pp as $value){ 
    $tmp[] = array('y' => round(100*$pp/$sum_pp,0)); 
} 
echo json_encode(array("data"=>$tmp));
因为这将在Javascript中解析时创建一个“propper”对象。我的代码中的上述两个示例都将生成一些可以直接在Highcharts中使用的内容。请注意,
series
参数采用系列数组。因此,在javascript中,您必须执行以下操作:

series: [
    data: response
]

其中
response
是PHP脚本中
json_encode
的输出

你能换个说法吗?
$pp
中存储了什么?在它上面使用一个
foreach
,就好像它是一个数组一样,但是在cicle内部使用它,而不是
$value
$pp包含我想用百分比表示的值。我在我的帖子上犯了一个错误。它是圆形的(100*$value/$sum\u pp,0)