php - 以嵌套格式显示类别和子类别

标签 php mysql codeigniter

我正在处理类别和子类别部分,我想在其中显示各自类别下的所有子类别。

它类似于Wordpress Category Sub Category 显示。我想在 Codeigniter 中运行这个东西。

下面是我的数组

    Array
    (
        [0] => Array
            (
                [name] => 1 Category
                [children] => Array
                    (
                        [0] => Array
                            (
                                [name] => 1 Sub Category
                            )

                        [1] => Array
                            (
                                [name] => 2nd 1 Sub Category 
                            )

                    )

            )

        [1] => Array
            (
                [name] => 6 Category
                [children] => Array
                    (
                        [0] => Array
                            (
                                [name] => 6 Sub Category
                                [children] => Array
                                    (
                                        [0] => Array
                                            (
                                                [name] => 2 Sub Category
                                                [children] => Array
                                                    (
                                                        [0] => Array
                                                            (
                                                                [name] => 7 Sub Category
                                                            )

                                                    )

                                            )

                                    )

                            )

                    )

            )

    )

我的愿望是:

    1 Category 
       - 1 Sub Category
       - 2nd 1 Sub Category
    6 Category
       - 6 Sub Category
           - 2 Sub Category
               - 7 Sub Category

另一个期望的输出:

<select>
<option>1 Category</option>
<option>- 1 Sub Category</option>
<option>- 2nd 1 Sub Category</option>
<option>6 Category</option>
<option>- 6 Sub Category</option>
<option>- - 2 Sub Category</option>
<option>- - - 7 Sub Category</option>
</select>

我希望我清楚我的问题和期望的输出。

最佳答案

我创建了一个函数,它会为您的输入返回 ul、li 结果。试试这个。

get_category($array);

function get_category($array) {
    echo '<ul>';
    foreach($array as $category) {
        echo '<li>';
        echo $category['name'];
        if(isset($category['children'])) {
            get_category($category['children']);
        }
        echo '</li>';
    }
    echo '</ul>';
}

选择输出的更新

echo '<select>';
get_category($array);
echo '</select>';

function get_category($array, $prefix = '') {
    foreach($array as $category) {
        echo '<option>';
        echo $prefix . $category['name'];
        echo '</option>';
        if(isset($category['children'])) {
            get_category($category['children'], $prefix.'- ');
        }
    }
}

关于php - 以嵌套格式显示类别和子类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39222311/

相关文章:

sql - mysql 有条件连接

php - Laravel 在动态添加数据库名称后刷新数据库配置缓存

php - 通过检查数据库中的密码并移至 codeigniter 中的下一页

php - 检查一天字段中两个日期之间的可用性

php - 使用flock()来锁定流只能保证在什么情况下起作用?

php - 在 MVC 和 3 层或 N 层架构中开发网站有什么区别?

php - 使用 PDO 以只读方式打开 SQLite3?

php - Zend 框架模块和反射

php - 如何操作php时间数据并在:minute format小时内获得结果

php - 超过更新查询锁定等待超时