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);

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...