Я абсолютно застрял с этим фрагментом кода, я искал и искал, чтобы он заработал, и с треском провалился.
Мой вывод Json в настоящее время выглядит следующим образом
[
{
"key": "OWM1",
"values": [
[
"x : EW",
"y :4"],
[
"x : RSE",
"y :3"],
[
"x : SWE",
"y :2"],
[
"x : WTE",
"y :1"],
[
"x : WWE",
"y :1"]
]
},
{
"key": "OWM2",
"values": [
[
"x : EW",
"y :4"],
[
"x : RSE",
"y :2"],
[
"x : SWE",
"y :1"],
[
"x : WTE",
"y :3"],
[
"x : WWE",
"y :2"]
]
}
]
Но мне нужно, чтобы она выглядела так, чтобы диаграмма NVD3 могла правильно ее обрабатывать.
[
{
"key": "OWM1",
"values":
[
{ x : "EW", y : 4 },
{ x : "RSE", y : 3 },
{ x : "SWE", y : 2 }
{ x : "WTE", y : 1 }
{ x : "WWE", y : 21 }
]
},
{
key: "OWM2",
values:
[
{ x : "EW", y : 4 },
{ x : "RSE", y : 2 },
{ x : "SWE", y : 1 }
{ x : "WTE", y : 3 }
{ x : "WWE", y : 2 }
]
}]
Вот мой PHP-код, с которым я создаю первый вывод json.
$result = mysqli_query($con,"SELECT CODE, _POS, COUNT(CODE) AS COUNT from defects WHERE FPOS IN ('OWM1','OWM2') GROUP BY POS, CODE");if($result) {
$jsonData = convert($result);
}
function convert($result) {
$intermediate = array();
while($rows = mysqli_fetch_assoc($result)) {
$key = $rows['POS'];
$x = $rows['CODE'];
$y = $rows[''];
$intermediate[$key][] = array('x : ' .$x,'y :' . $y);
}$output = array();
foreach($intermediate as $key => $values) {
$output[] = array(
"key" => $key,
'values' => $values
);
}
echo json_encode($output);
}
mysqli_close($con);
Можно ли как-нибудь помочь мне манипулировать кодом, который мне нужен, чтобы он выглядел точно так же, как второй набор кода JSON, который совместим с графиками NVD3?
Большое спасибо.
Похоже, вы создаете неассоциативный массив здесь …
$intermediate[$key][] = array('x : ' .$x,'y :' . $y);
Заменить это на …
$intermediate[$key][] = array('x' => $x, 'y' => $y);
Других решений пока нет …