JSON получение данных из многомерных массивов - PullRequest
0 голосов
/ 28 ноября 2018

Я заполнил диаграмму, вставив данные из многомерного массива 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 голосов
/ 28 ноября 2018

Из того, что я могу сказать (не проверял), вам просто нужно изменить:

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

На

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

Изменение структуры JSON изменилось из массивасловарей, к словарю словарей, так что вы больше не обращаетесь к нему по индексу, вместо этого вы обращаетесь к нему по ключу (Array1, Array2).

...