Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有递归函数的Echo菜单树_Php_Mysql_Html_Recursion - Fatal编程技术网

Php 带有递归函数的Echo菜单树

Php 带有递归函数的Echo菜单树,php,mysql,html,recursion,Php,Mysql,Html,Recursion,问题:我想不出适合我的具体情况的递归函数 情况: Mysql数据库 id | root | name | 其中root向开关类别显示这是子类别 HTML应该是什么样子的: <li><a href="#"><p class="Tier0">Datori</p></a> <ul style="display: block"> <

问题:我想不出适合我的具体情况的递归函数

情况:

Mysql数据库

id | root | name |

其中
root
向开关类别显示这是子类别

HTML应该是什么样子的:

    <li><a href="#"><p class="Tier0">Datori</p></a>
                    <ul style="display: block">
                         <li><a href="#"><p class="Tier1">Cookies</p></a></li>
                         <li><a href="#"><p class="Tier1">Events</p></a></li>
                         <li><a href="#"><p class="Tier1">Forms</p></a></li>
                         <li><a href="#"><p class="Tier1">Games</p></a></li>
                         <li><a href="#"><p class="Tier1">Images</p></a>
                            <ul>
                                <li><a href="#"><p class="Tier2">CSS</p></a></li>
                                <li><a href="#"><p class="Tier2">JavaScript</p></a></li>
                                <li><a href="#"><p class="Tier2">JQuery</p></a></li>
                            </ul>
                         </li>
                         <li><a href="#"><p class="Tier1">Navigations</p></a>
                            <ul>
                                <li><a href="#"><p class="Tier2">CSS</p></a></li>
                                <li><a href="#"><p class="Tier2">JavaScript</p></a></li>
                                <li><a href="#"><p class="Tier2">JQuery</p></a></li>
                            </ul>
                        </li>
                         <li><a href="#"><p class="Tier1">Tabs</p></a></li>
                    </ul>
                </li>
                <li><a href="#"><p class="Tier0">Washing Machines</p></a>
  • 我需要什么样的PHP函数才能全部打印出来?

    怎么样:

    function recurse($categories, $parent = null, $level = 0)
    {
        $ret = '<ul>';
        foreach($categories as $index => $category)
        {
            if($category['root'] == $parent)
            {
                $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
                $ret .= $this->recurse($categories, $category['id'], $level+1);
                $ret .= '</li>';
            }
        }
        return $ret . '</ul>';
    }
    

    您可以考虑执行以下操作,以防止当父节点不存在时出现任何空UL:

    function recurse($categories, $parent = null, $level = 0)
    {
        $ret = '<ul>';
        foreach($categories as $index => $category)
        {
            if($category['root'] == $parent)
            {
                $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
                $sub = $this->recurse($categories, $category['id'], $level+1);
                if($sub != '<ul></ul>')
                    $ret .= $sub;
                $ret .= '</li>';
            }
        }
        return $ret . '</ul>';
    }
    
    您的职能是:

    function recurse($categories, $parent = null, $level = 0)
    {
        $ret = '<ul>';
        foreach($categories as $index => $category)
        {
            if($category['root'] == $parent)
            {
                $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
                if($category['ChildCount'] > 0)
                    $ret .= $this->recurse($categories, $category['id'], $level+1);
                $ret .= '</li>';
            }
        }
        return $ret . '</ul>';
    }
    
    函数递归($categories,$parent=null,$level=0)
    {
    $ret=“
      ”; foreach($index=>$category的类别) { 如果($category['root']==$parent) { $ret.=“
    • ”; 如果($category['ChildCount']>0) $ret.=$this->recurse($categories,$categories['id',$level+1); $ret.='
    • '; } } 返回$ret.“
    ”; }
    希望有帮助?

    那么:

    function recurse($categories, $parent = null, $level = 0)
    {
        $ret = '<ul>';
        foreach($categories as $index => $category)
        {
            if($category['root'] == $parent)
            {
                $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
                $ret .= $this->recurse($categories, $category['id'], $level+1);
                $ret .= '</li>';
            }
        }
        return $ret . '</ul>';
    }
    

    您可以考虑执行以下操作,以防止当父节点不存在时出现任何空UL:

    function recurse($categories, $parent = null, $level = 0)
    {
        $ret = '<ul>';
        foreach($categories as $index => $category)
        {
            if($category['root'] == $parent)
            {
                $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
                $sub = $this->recurse($categories, $category['id'], $level+1);
                if($sub != '<ul></ul>')
                    $ret .= $sub;
                $ret .= '</li>';
            }
        }
        return $ret . '</ul>';
    }
    
    您的职能是:

    function recurse($categories, $parent = null, $level = 0)
    {
        $ret = '<ul>';
        foreach($categories as $index => $category)
        {
            if($category['root'] == $parent)
            {
                $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
                if($category['ChildCount'] > 0)
                    $ret .= $this->recurse($categories, $category['id'], $level+1);
                $ret .= '</li>';
            }
        }
        return $ret . '</ul>';
    }
    
    函数递归($categories,$parent=null,$level=0)
    {
    $ret=“
      ”; foreach($index=>$category的类别) { 如果($category['root']==$parent) { $ret.=“
    • ”; 如果($category['ChildCount']>0) $ret.=$this->recurse($categories,$categories['id',$level+1); $ret.='
    • '; } } 返回$ret.“
    ”; }

    希望有帮助?

    看看这个。。。看这个。。。非常感谢。有一天,我要喝啤酒,你救了我的命非常感谢。有一天,我要喝啤酒,你救了我的命