使php数组floctcharts兼容,形成Codeigniter

时间:2013-05-18 02:09:09

标签: php json

我正在设计一个带有codeigniter的应用程序,并动态生成我的数组并将它们推送到我的视图中。虽然看起来很简陋,但我遇到了一些问题。

在我的Model函数中,我生成了这样的数组:

foreach ($Q->result_array() as $row)
            {

                $data[]=array(
                              'label'=>$row['students'],
                              'data'=>$row['marks']
                              );         
            }

然后我返回$ data

在我看来,我使用如此处所示的json_decode

<script>
  data = <?php echo json_encode($lang);?>;
  data=trim("label", '"');
  //alert(data);
  $.plot($("#graph4"), data, 
    {
        series: {
            pie: { 
                show: true,
                radius: 1,
                label: {
                    show: true,
                    radius: 3/4,
                    formatter: function(label, series){
                        return '<div style="font-size:8pt;text-align:center;padding:2px;color:white;">'+label+'<br/>'+Math.round(series.percent)+'%</div>';
                    },
                    background: { 
                        opacity: 0.5,
                        color: '#000'
                    }
                }
            },
        legend: {
            show: false
        }
});  

</script>

但生成的json与flotcharts库不兼容,而不是

[{label:"Mark",data:1},{label:"Jenny",data:1}]

我有

[{"label":"Mark","data":"1"},{"label":"Jenny","data":"1"}]

如何删除双引号,以便它只能应用于标签而不是数据

任何帮助将不胜感激,

由于

更新

对于那些将面临这个问题的人,我用正则表达式解决了这个问题

echo preg_replace('/"([^"]+)"\s*:\s*/', '$1:',json_encode($lang));

1 个答案:

答案 0 :(得分:0)

您可以手动构建它而不是使用json函数。我过去曾经使用过这样的东西,你可以在你的模型中使用它:

$data .= '{label:'.$row["students"].',data:'.$row["marks"].'},';

并在循环之后:

$data = "[{$data}]";