微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何迭代嵌套数组?

这就是我所拥有的:

$nav = array (
    "page 1" => array (
        "page 1.1" => array (
            "page 1.1.1"
            "page 1.1.2"
        ) ,
        "page 1.2"
    )
    "page 2" => array (
        "page 2.1"
    )
);

这就是我想要的:

<nav>
    <ul>
        <li>page 1
            <ul>
                <li>page 1.1
                    <ul>
                        <li>page 1.1.1</li>
                        <li>page 1.1.2</li>
                    </ul>
                </li>
                <li>page 1.2</li>
            </ul>
        </li>
        <li>page 2
            <ul>
                <li>page 2.1</li>
            </ul>
        </li>
    </ul>
</nav>

到目前为止我所拥有的:

foreach ($nav as $key => $val) {
    if (!is_numeric($key)) {
        $nav_entry = $key;
    } else {
        $nav_entry = $val;
    }
    echo "<li>" . $nav_entry . "</li>";
}

我的问题在于,如果有子数组,我需要有foreach循环.最重要的是,我需要以某种方式使用if语句来添加< ul>< / ul>标签

我开始看到明星……太混乱了.

解决方法:

试试:)

function createMenu($nav){
    echo "<ul>";
    foreach($nav as $key => $row){
        if(!is_array($row)){
            echo "<li>".$row."</li>";
        }else{
            echo "<li>".$key;
                createMenu($row);
            echo "</li>";

        }
    }
    echo "</ul>";
}

createMenu($nav);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐