1 回答
TA贡献1848条经验 获得超10个赞
我无意中找到了解决方案。问题key出在$data故意用$gardinersClassNumber. 它应该是自动生成的。
这是正确的解决方案:
foreach($results as $result) {
$gardinersClassNumber = $result["class"]-1;
$gardinersClass = $gardinersClasses[$gardinersClassNumber];
if (empty($data)) {
$data[] = array(
"text" => $gardinersClass,
"children" => array(array(
"id" => $result["id"],
"text" => $result["text"]
)
)
);
} else {
$counter = 0;
foreach ($data as $subdata) {
if (in_array($gardinersClass, $subdata)) {
$counter++;
}
}
if ($counter < 1) {
$data[] = array(
"text" => $gardinersClass,
"children" => array(array(
"id" => $result["id"],
"text" => $result["text"]
)
)
);
} else {
$currentKey = key($data);
$data[$currentKey]["children"][] = array(
"id" => $result["id"],
"text" => $result["text"]
);
}
}
}
如您所见,key()当在数组中找到匹配项时,我使用函数检索当前键,然后我使用它在该位置插入数据。
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报
