php - highcharts 上的子系列数组
问题描述
我在 Highcharts 中生成带有向下钻取的图表时遇到了一些问题。我正在使用 Highcharts 来呈现带有向下钻取系列的饼图。我需要转换这个输出 json
Drilldownseries = [
{
"name": "LAZIO",
"data": [["ROMA", 28]],
"id": "LAZIO"
},
{
"name": "LAZIO",
"data": [["FROSINONE", 218]],
"id": "LAZIO"
},
{
"name": "LAZIO",
"data": [["LATINA", 212]],
"id": "LAZIO"
},
{
"name": "TOSCANA",
"data": [["FIRENZE", 2]],
"id": "TOSCANA"
},
{
"name": "TOSCANA",
"data": [["LIVORNO", 5]],
"id": "TOSCANA"
},
{
"name": "TOSCANA",
"data": [["PISA", 9]],
"id": "TOSCANA"
}
];
至
Drilldownseries = [
{
"name": "LAZIO",
"data": [["ROMA", 28], ["FROSINONE", 218], ["LATINA", 212]],
"id": "LAZIO"
},
{
"name": "TOSCANA",
"data": [["FIRENZE", 2], ["LIVORNO", 5], ["PISA", 9]],
"id": "TOSCANA"
}
];
这是填充数组的查询部分:
...
if($res3)
{
$i = 0;
while ($row = mysqli_fetch_array($res3, MYSQLI_ASSOC))
{
$row3[$i]["name"] = $row["name"];
$row3[$i]["data"] = [[$row["subname"],$row["data"]]];
$row3[$i]["id"] = $row["id"];
$i++;
};
$row3 = json_encode($row3,JSON_NUMERIC_CHECK);
};
我更喜欢使用格式良好的 php 提取数组,但应该与 json 相同。
PHP 7.2
Highcharts 6.1.1
解决方案
为了所有人的利益,这是我的解决方案。应该感谢精炼的代码:) 首先删除下面代码中的方括号
$row3[$i]["data"] = [$row["subname"],$row["data"]];
然后创建新数组
$repl = array();
$i = 0;
foreach ($row3 as $value) {
if (!isset($repl[$i]['id'])) {
$repl[$i]['id'] = $value['id'];
$repl[$i]['name'] = $value['name'];
$repl[$i]['data'] = [$value['data']];
} elseif (($repl[$i]['id']) <>$value['id']) {
$i++;
$repl[$i]['id'] = $value['id'];
$repl[$i]['name'] = $value['name'];
$repl[$i]['data'] = [$value['data']];
} else {
array_push($repl[$i]['data'], $value['data']);
}
}
$resultx = json_encode($repl,JSON_NUMERIC_CHECK);
谢谢
推荐阅读
- php - 只有订阅的 Woocommerce 自动完成订单
- python - 有没有一种简单的方法可以在 ruby 中将数组和整数相乘?
- ios - 从 Swift 3.0 到 Swift 4.2 的转换错误“无法将类型 '[String]' 的值分配给类型 '[AVMetadataObject.ObjectType]?'”
- c# - 通过多个地图自动映射
- centos - SELINUX 中的 nis_enabled 是什么?
- excel - 将多个工作表复制到不同的工作簿中
- python - 使用 awk 或 sed 替换 xml 文件中的值
- r - 如何使用 r markdown 以闪亮的方式打印报告?
- r - 从另一个 r 中减去一个时间列
- git - Git:推入分支以便恢复已删除的文件