首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何显示多级到多个关系树

如何显示多级到多个关系树
EN

Stack Overflow用户
提问于 2017-12-25 07:00:33
回答 2查看 368关注 0票数 0

如何使用<ul></ul>循环所有记录并显示各自的子记录?我试着使用PHP,但只停留在1级。

MySQL (select * from user)

期望输出

树视图

列表视图

EN

回答 2

Stack Overflow用户

发布于 2017-12-25 07:07:40

简单的办法是借助数组来完成这一任务。希望能帮上忙。

代码语言:javascript
复制
$data = array();
foreach ($result as $item) {
    $key = $item['name']; // or $item['info_id']
    if (!isset($data[$key])) {
        $data[$key] = array();
    }

    $data[$key][] = $item;
}
票数 1
EN

Stack Overflow用户

发布于 2017-12-25 14:46:22

您可以使用以下代码:

代码语言:javascript
复制
$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_id”而不是“父”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47966430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档