加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 将数组转换为Ul-Li

发布时间:2020-12-13 17:45:04 所属栏目:PHP教程 来源:网络整理
导读:我有这样的阵列 Array( [0] = Array ( [name] = Region [id] = 3 [parent_id] = 2 [children] = Array ( [0] = Array ( [name] = Asia [id] = 4 [parent_id] = 3 [children] = Array ( [0] = Array ( [name] = Central Asia [id] = 6621 [parent_id] = 4 [ch
我有这样的阵列

Array
(
    [0] => Array
        (
            [name] => Region
            [id] => 3
            [parent_id] => 2
            [children] => Array
                (
                    [0] => Array
                        (
                            [name] => Asia
                            [id] => 4
                            [parent_id] => 3
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [name] => Central Asia
                                            [id] => 6621
                                            [parent_id] => 4
                                            [children] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [name] => Afghanistan
                                                            [id] => 5
                                                            [parent_id] => 6621
                                                            [children] => Array
                                                                (
                                                                    [0] => Array
                                                                        (
                                                                            [name] => Balkh
                                                                            [id] => 6
                                                                            [parent_id] => 5
                                                                            [children] => Array
                                                                                (
                                                                                    [0] => Array
                                                                                        (
                                                                                            [name] => Mazar-e-Sharif
                                                                                            [id] => 7
                                                                                            [parent_id] => 6
                                                                                        )

                                                                                )

                                                                        )

                                                                    [1] => Array
                                                                        (
                                                                            [name] => Kabol
                                                                            [id] => 10
                                                                            [parent_id] => 5
                                                                        )

                                                                    [2] => Array
                                                                        (
                                                                            [name] => Qandahar
                                                                            [id] => 12
                                                                            [parent_id] => 5
                                                                        )

                                                                )

                                                        )

                                                )

                                        )

                                    [1] => Array
                                        (
                                            [name] => Middle East
                                            [id] => 6625
                                            [parent_id] => 4
                                            [children] => Array
                                                (
                                                    [0] => Array
                                                        (
                                                            [name] => Armenia
                                                            [id] => 14
                                                            [parent_id] => 6625
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

)

现在我想将这个数组转换为树形结构中的ul-li

但它给了我奇怪的输出

例如Region我想这样

<li id=3 parent_id=2 > Region </li>

这里我想使用id和parent_id作为属性
php函数是

function olLiTree($tree)
    {
        echo '<ul>';
        foreach($tree as $key => $item) {
            if (is_array($item)) {
                echo '<li>',$key;
                olLiTree($item);
                echo '</li>';
            } else {
                echo '<li>',$item,'</li>'; 
            }
        }
        echo '</ul>';
    }

从上面的功能来看区域的输出是这样的

<ul>
    <li>0
        <ul>
            <li>Region</li>
            <li>3</li>
            <li>2</li>
            <li>children
                <ul>

解决方法

也许这是你寻求的递归.

function olLiTree( $tree ) {
    echo '<ul>';
    foreach ( $tree as $item ) {
        echo "<li id="$item[id]" parent_id="$item[parent_id]" > $item[name] </li>";
        if ( isset( $item['children'] ) ) {
            olLiTree( $item['children'] );
        }
    }
    echo '</ul>';
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读