我正在尝试显示一个由力导向的树。有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->的定义,依此类推,但不确定如何构建最终构造的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);