amcharts - 强制定向树 - 转换数据 Laravel PHP
amcharts - Force Directed Tree - convert data Laravel PHP
我正在尝试显示力导向树。有3个型号
公司/部门/部门
每个公司都有很多部门。每个部门属于一个公司。
每个部门都有很多部门。每个部门属于一个部门。
amcharts 需要这样的语法:
[{
"name": "First",
"children": [{
"name": "A1", "value": 100
}, {
"name": "A2", "value": 60
}, {
"name": "A3", "value": 30
}]
}, {
"name": "Second",
"children": [{
"name": "B1", "value": 135
}, {
"name": "B2", "value": 98
}, {
"name": "B3", "value": 56
}]
}, {
"name": "Third",
"children": [{
"name": "C1", "value": 335
}, {
"name": "C2", "value": 148
}, {
"name": "C3", "value": 126
}, {
"name": "C4", "value": 26
}]
}, {
"name": "Fourth",
"children": [{
"name": "D1", "value": 415
}, {
"name": "D2", "value": 148
}, {
"name": "D3", "value": 89
}, {
"name": "D4", "value": 64
}, {
"name": "D5", "value": 16
}]
}, {
"name": "Fifth",
"children": [{
"name": "E1", "value": 687
}, {
"name": "E2", "value": 148
}]
}]
我这里只能上一级:
foreach ($companies as $company) {
$data[] =
(object) [
'name' => $company->name,
'value' => $company->value,
];
}
我确定我需要进一步遍历 $company->devisions 等等,但不确定如何构建 amcharts 期望的最终结构。有什么提示吗?
您可以尝试以下几行:
$data = [];
foreach ($companies as $company) {
$childrenArray = [
'name' => $company->name,
];
foreach ($company->divisions as $division) {
$childArray['children'][] = [
'name' => $division->name,
'value' => $division->value,
];
}
$data[] = $childrenArray;
}
return json_encode($data);
我正在尝试显示力导向树。有3个型号 公司/部门/部门
每个公司都有很多部门。每个部门属于一个公司。
每个部门都有很多部门。每个部门属于一个部门。
amcharts 需要这样的语法:
[{
"name": "First",
"children": [{
"name": "A1", "value": 100
}, {
"name": "A2", "value": 60
}, {
"name": "A3", "value": 30
}]
}, {
"name": "Second",
"children": [{
"name": "B1", "value": 135
}, {
"name": "B2", "value": 98
}, {
"name": "B3", "value": 56
}]
}, {
"name": "Third",
"children": [{
"name": "C1", "value": 335
}, {
"name": "C2", "value": 148
}, {
"name": "C3", "value": 126
}, {
"name": "C4", "value": 26
}]
}, {
"name": "Fourth",
"children": [{
"name": "D1", "value": 415
}, {
"name": "D2", "value": 148
}, {
"name": "D3", "value": 89
}, {
"name": "D4", "value": 64
}, {
"name": "D5", "value": 16
}]
}, {
"name": "Fifth",
"children": [{
"name": "E1", "value": 687
}, {
"name": "E2", "value": 148
}]
}]
我这里只能上一级:
foreach ($companies as $company) {
$data[] =
(object) [
'name' => $company->name,
'value' => $company->value,
];
}
我确定我需要进一步遍历 $company->devisions 等等,但不确定如何构建 amcharts 期望的最终结构。有什么提示吗?
您可以尝试以下几行:
$data = [];
foreach ($companies as $company) {
$childrenArray = [
'name' => $company->name,
];
foreach ($company->divisions as $division) {
$childArray['children'][] = [
'name' => $division->name,
'value' => $division->value,
];
}
$data[] = $childrenArray;
}
return json_encode($data);