1

「Category」オブジェクトで満たされた配列があり、それぞれに id と parent_id 値が含まれています。それらは次のようにアクセスされます:

$category->get("id"); //gets category id
$category->get("parent_id"); gets parent category id

次のような HTML UL リストを作成します。

<ul>
    <li>Category</li>
    <li>Category
        <ul>
            <li>Child Category</li>
            <li>Child Category</li>
            <li>Child Category
                <ul>
                    <li>Child Category</li>
                    <li>Child Category</li>
                    <li>Child Category</li>
                </ul>
            </li>
        </ul>
    </li>
    <li>Category</li>
    <li>Category</li>
    <li>Category</li>
    <li>Category</li>
</ul>

これを生成するには、どのような種類のループを実行する必要がありますか?

4

2 に答える 2

0

使用しているライブラリを知らなくても、作業コードというより疑似コードになりますが、再帰を使用してツリーを取得する方法を理解する必要があります

最初にメイン カテゴリを取得します (たとえば、カテゴリ 0 をトップ カテゴリとして設定できます。次に、すべてのアイテムをループして子を取得します。ノードに子がある場合は、それ自体を再帰的に呼び出します)。

showCategory($rootcategory) 
function showCategory($category) {
    $children=fetchChildren();
    if($children) //if category has children
    {
      echo('<ul>');
      foreach($children as $child) {
          showCategory($child);
      }
      echo('</ul>');
    }
    else {
      echo('<li>' . $child['title'] . '</li>');
    }
}
于 2013-03-06T03:20:07.357 に答える
0

MPTT ツリー ロジックが役立つ場合があります

http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

于 2012-05-07T09:12:23.867 に答える