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 關注
- 100 瀏覽
添加回答
舉報