0

我有一个保存在 MySQL 中的多维菜单。表看起来像:

id name parent_id

桌子很大。我不想运行数百个 mysql_query() 所以我从这个开始:

$result = mysql_query("SELECT * FROM test");
$arrs = array();

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    $arrs[] = $row;
}

function build_tree($arrs, $parent_id=0, $level=0) {
    foreach ($arrs as $arr) {
        if ($arr['parent_id'] == $parent_id) {
            echo str_repeat("-", $level)." ".$arr['name']."<br />";
            build_tree($arrs, $arr['id'], $level+1);
        }
    }
}

build_tree($arrs);

这很好用,但是如何修改它以打印每个帖子的所有 parent_id?几乎像面包屑。

4

1 回答 1

0

您可以传入一组 parent_id,而不是只传入一个 parent_id。您可以在递归调用之前将当前 parent_id 附加到此数组中,并在递归调用之后将其删除。

于 2013-07-25T18:57:54.210 回答