Category Hierarchy (PHP/MySQL)

后端 未结 5 1458
悲&欢浪女
悲&欢浪女 2020-11-29 20:57

I am trying to get my all categories and sub-categories from MySQL database in a hierarchy:

My result should be like that (just example):

5条回答
  •  天涯浪人
    2020-11-29 22:04

    @Amnon Your code works perfectly. Just tested it with CodeIgniter and it worked like a charm. Here's the working code if anyone needs it:

    parent_id;
        $id   = $cat->cat_id;
        $name = $cat->cat_name;
    
        // Create or add child information to the parent node
        if (isset($tree[$pid]))
            // a node for the parent exists
            // add another child id to this parent
            $tree[$pid]["children"][] = $id;
        else
            // create the first child to this parent
            $tree[$pid] = array("children"=>array($id));
    
        // Create or add name information for current node
        if (isset($tree[$id]))
            // a node for the id exists:
            // set the name of current node
            $tree[$id]["name"] = $name;
        else
            // create the current node and give it a name
            $tree[$id] = array( "name"=>$name );
    }
    return $tree;
    }
    
    
    function toUL($tree, $id, $html){
      $html .= '
      '.PHP_EOL; if (isset($tree[$id]['name'])) $html .= '
    • ' . $tree[$id]['name']; if (isset($tree[$id]['children'])) { $arChildren = &$tree[$id]['children']; $len = count($arChildren); for ($i=0; $i<$len; $i++) { $html .= toUL($tree, $arChildren[$i], ""); } $html .= '
    • '.PHP_EOL; } $html .= '
    '.PHP_EOL; return $html; } $tree = disTree($all_cats); // Display the tree echo toUL($tree, 0, ""); ?>

    The only thing I changed was adding my own array ($all_cats).

提交回复
热议问题