更改我的json格式以格式化Highcharts

时间:2016-12-12 03:38:00

标签: php json

  

code php mysql

    $ok = mysql_query("SELECT *,YEAR(NOW()) 
AS ok ,MONTH(NOW())FROM bulan WHERE bulan<=MONTH(NOW()) ");

while($r1=mysql_fetch_array($ok)){

$cek=$r1['bulan']; $cek2=$r1['ok']; $gab=$cek2."-".$cek; $sql="SELECT (SELECT COUNT(p.perkara_id) FROM perkara AS p LEFT OUTER JOIN perkara_putusan AS putus ON p.perkara_id = putus.perkara_id WHERE p.alur_perkara_id AND LEFT(p.tanggal_pendaftaran, 7) < '$gab' AND ( putus.tanggal_putusan IS NULL OR LEFT(putus.tanggal_putusan, 7) >= '$gab') AND p.jenis_perkara_kode!='LL'

           )AS sisa_bulan_lalu     FROM bulan WHERE bulan=$cek ";

$sql2="SELECT ( SELECT COUNT(p.perkara_id) FROM perkara AS p WHERE p.alur_perkara_id AND LEFT(p.tanggal_pendaftaran, 7) = '$gab' AND p.jenis_perkara_kode!='LL'

           )AS sisa_bulan_lalu     FROM bulan WHERE bulan=$cek ";

while($r1=mysql_fetch_array($ok)){ !='LL' )AS sisa_bulan_lalu FROM bulan WHERE bulan=$cek ";

$hasil = mysql_query("$sql"); $hasil2 = mysql_query("$sql2"); $hasil3 = mysql_query("$sql3");

$rows1 = array(); $rows1['name'] = 'sisa_bulan_lalu';
while($r=mysql_fetch_array($hasil)){ $rows1['data'][] = $r['sisa_bulan_lalu']; }

$rows2 = array(); $rows2['name'] = 'masuk_bulan_ini';
while($r2=mysql_fetch_array($hasil2)){ $rows2['data'][] = $r2['sisa_bulan_lalu']; }

$rows3 = array(); $rows3['name'] = 'minutasi_bulan_ini';
while($r3=mysql_fetch_array($hasil3)){ $rows3['data'][] = $r3['sisa_bulan_lalu']; }

$result = array(); array_push($result,$rows1); array_push($result,$rows2); array_push($result,$rows3); print json_encode($result, JSON_NUMERIC_CHECK);

}

生成此json格式的代码

[{"name":"sisa_bulan_lalu","data":[67]}, {"name":"masuk_bulan_ini","data":[23]}, {"name":"minutasi_bulan_ini","data":[17]}]

[{"name":"sisa_bulan_lalu","data":[66]}, {"name":"masuk_bulan_ini","data":[22]}, {"name":"minutasi_bulan_ini","data":[27]}]

[{"name":"sisa_bulan_lalu","data":[53]}, {"name":"masuk_bulan_ini","data":[11]}, {"name":"minutasi_bulan_ini","data":[12]}]

[{"name":"sisa_bulan_lalu","data":[33]}, {"name":"masuk_bulan_ini","data":[20]}, {"name":"minutasi_bulan_ini","data":[39]}]

         
      


我希望数据可以通过以下方式格式化       我可以插入HighCharts中的系列选项:

  [{
            name: 'Sisa Bulan Lalu',
            data: [67,66,53,33]
        }, {
            name: 'Masuk Bulan Ini',
            data: [23,22,11,20]
        }, {
            name: 'Minutasi Bulan Ini',
            data: [17,27,12,39]
        }]

    
  

1 个答案:

答案 0 :(得分:0)

你可以这样做,

var data = [{
    "name": "sisa_bulan_lalu",
    "data": [67]
}, {
    "name": "masuk_bulan_ini",
    "data": [23]
}, {
    "name": "minutasi_bulan_ini",
    "data": [17]
}, {
    "name": "sisa_bulan_lalu",
    "data": [66]
}, {
    "name": "masuk_bulan_ini",
    "data": [22]
}, {
    "name": "minutasi_bulan_ini",
    "data": [27]
}, {
    "name": "sisa_bulan_lalu",
    "data": [53]
}, {
    "name": "masuk_bulan_ini",
    "data": [11]
}, {
    "name": "minutasi_bulan_ini",
    "data": [12]
}, {
    "name": "sisa_bulan_lalu",
    "data": [33]
}, {
    "name": "masuk_bulan_ini",
    "data": [20]
}, {
    "name": "minutasi_bulan_ini",
    "data": [39]
}];
  var res = [];
  var axis = [];
  data.forEach(function(o) {
    var exists = res.find(p => p.name === o.name);    
    if (exists) {
      exists.data.push(o.data[0]);
    } else {
      axis.push(o.name);
      res.push(o);
    }
  });

<强> DEMO

相关问题