简体   繁体   English

如何将多级数组转换为ul?

[英]How to convert a multi-level array to ul?

I have the following array. 我有以下数组。

    Array
(
    [24] => Array
        (
            [id] => 24
            [name] => Main menu
            [shortdesc] => mainmenu
            [status] => active
            [parentid] => 0
            [order] => 0
            [children] => Array
                (
                    [65] => Array
                        (
                            [id] => 65
                            [name] => Main 4
                            [shortdesc] => 
                            [status] => active
                            [parentid] => 24
                            [order] => 0
                            [children] => Array
                                (
                                )

                        )

                    [64] => Array
                        (
                            [id] => 64
                            [name] => Main 3
                            [shortdesc] => 
                            [status] => active
                            [parentid] => 24
                            [order] => 0
                            [children] => Array
                                (
                                )

                        )

                   ...
                   ...

                    [59] => Array
                        (
                            [id] => 59
                            [name] => Main 1
                            [shortdesc] => 
                            [status] => active
                            [parentid] => 24
                            [order] => 0
                            [children] => Array
                                (
                                    [66] => Array
                                        (
                                            [id] => 66
                                            [name] => Main 1-1
                                            [shortdesc] => 
                                            [status] => active
                                            [parentid] => 59
                                            [order] => 0
                                            [children] => Array
                                                (
                                                )

                                        )

                                )

                        )

                )

        )

    [25] => Array
        (
            [id] => 25
            [name] => Galleri 1
            [shortdesc] => galleri1
            [status] => active
            [parentid] => 0
            [order] => 0
            [children] => Array
                (
                )

        )

)

And I want to convert this to the following HTML by php. 我想通过php将其转换为以下HTML。

<ul>
   <li>Main menu
        <ul>
            <li>Main 4</li>
            <li>Main 3</li>
            ...
            <li>Main 1
                <ul>
                    <li>Main 1-1</li>
                </ul>
            </li>
        </ul>
   </li>
   <li>Galleri 1</li>

</ul>

I started like this, but I am stuck. 我是这样开始的,但是我被困住了。

if (count($navlist)){
  echo "\n<ul>";
  foreach ($navlist as $key => $list){
...
...

Something like this?: 像这样吗?

function recursion($multi_dimensional_array)
    {
        $m = $multi_dimensional_array;

        $keys = array();
        foreach($m as $key=>$value)
        {
            $keys[] = $key;
        }

        $i = 0;
        while($i < count($multi_dimensional_array))
        {
            echo '<li><a href="#">'.$keys[$i].'</a>';
            if(is_array($multi_dimensional_array[$keys[$i]]))
            {
                echo '<ul>';
                recursion($multi_dimensional_array[$keys[$i]]);
                echo '</ul>';
            }
            echo '</li>';
            $i++;
        }
    }
function arrayToUL(array $array)
{
    echo '<ul>';
    foreach ($array as $key => $value)
    {
        if (isset($value['name'])) echo "<li>{$value['name']}</li>";
        if (!empty($value['children']) && is_array($value['children']))
        {
            echo arrayToUL($value['children']);
        }
    }
    echo '</ul>';
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM