JSON从多维数组获取数据

时间:2018-11-28 20:30:37

标签: php arrays json highcharts

我一直在填充一个图表,其中嵌入了来自多维PHP数组($ result)的数据。当将数组打印为JSON时(使用print json_encode($ result,JSON_NUMERIC_CHECK);),我得到以下数组结构:

[
  {
  "name":"Array1",
  "data":[
    1,
    2,
    3
  ]
  },
  {
  "name":"Array2",
  "data":[
    1,
    2,
    3
  ]
  }
]

我使用此数组在下面的代码中填充了我的图表。过去这种方法工作得很好,但是在我更改了阵列的设置之后,现在必须进行重新设计。

$.getJSON("../data.php", {id: escape(tableName)}, function(json) {
    chartOptions.chart1.xAxis.categories = json[0]['data'];
    chartOptions.chart1.series[0].data = json[1]['data'];
});

在进行一些更改后,我的$ result数组的新设置如下:

{
  "Array1":{
    "data":[
      "1",
      "2",
      "3"
    ]
  },
  "Array2":{
    "data":[
      "1",
      "2",
      "3"
    ]
  }
}

因此,我用来填充Highcharts的代码不再起作用。如果有人可以帮助我理解如何重做$ .getJSON代码,使其与新的数组结构一起使用,我将非常感谢。还是告诉我是否必须坚持旧的阵列设置?谢谢。

1 个答案:

答案 0 :(得分:1)

据我所知(未经测试),您只需要更改:

null

收件人

$.getJSON("../data.php", {id: escape(tableName)}, function(json) {
    chartOptions.chart1.xAxis.categories = json[0]['data'];
    chartOptions.chart1.series[0].data = json[1]['data'];
});

JSON结构的更改从字典数组更改为字典字典,因此您不再通过索引访问它,而是通过键(Array1,Array2)访问它。