Php 如何显示多级一对多关系树
如何使用HTML循环所有记录并显示所有相应的子项?我尝试使用PHP Do,但只停留在1级 MySQL从用户选择* 期望输出 树视图 列表视图Php 如何显示多级一对多关系树,php,html,mysql,parent-child,multi-level,Php,Html,Mysql,Parent Child,Multi Level,如何使用HTML循环所有记录并显示所有相应的子项?我尝试使用PHP Do,但只停留在1级 MySQL从用户选择* 期望输出 树视图 列表视图 最简单的方法是在数组的帮助下完成。希望能有帮助 $data = array(); foreach ($result as $item) { $key = $item['name']; // or $item['info_id'] if (!isset($data[$key])) { $data[$key] = array()
最简单的方法是在数组的帮助下完成。希望能有帮助
$data = array();
foreach ($result as $item) {
$key = $item['name']; // or $item['info_id']
if (!isset($data[$key])) {
$data[$key] = array();
}
$data[$key][] = $item;
}
您可以使用以下代码:
$aResults; // it is your mysql result (array)
$resultSorted = array();
$resultSorted = recursiveList($aResults, '');
function recursiveList(&$aResults, $iKey)
{
$aChilds = '<ul>';
foreach ($aResults as $iLoopKey => $aResult) {
if ($aResult['parent'] == $iKey) {
unset($aResults[$iLoopKey]);
$aChilds .= '<li>' . $aResult['name'] . '</li>';
$aChilds .= recursiveList($aResults, $aResult['name']);
}
}
return $aChilds . '</ul>';
}
// Output example
echo '<pre>';
print_r($resultSorted);
因此,我得到:
此外,您最好在表中使用“parent\u id”而不是“parent”。从用户中选择name,其中parent='jason'您需要的输出是什么?@AnkitAgrawal我已更新了所需的输出您通常会存储父项的id。否则,为什么还要麻烦id呢?嗨,我已经更新了我的问题,你的答案仍然有效?