Отображать категорию и подкатегорию во вложенном формате

Я работаю над разделом категорий и подкатегорий, где хочу отобразить все подкатегории в соответствующей категории.

Это что-то похожее на отображение подкатегории категории Wordpress. Я хочу запустить эту штуку в 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>

Я надеюсь, что я ясно с моим вопросом и желаемым результатом.


person aliasgar vanak    schedule 30.08.2016    source источник
comment
stackoverflow.com/a/16808998/1531192 так же, как и ваш вопрос   -  person krunal nerikar    schedule 30.08.2016
comment
@krunalnerikar: нет, это не тот вопрос, приятель   -  person aliasgar vanak    schedule 30.08.2016


Ответы (1)


Я создал функцию, которая возвращает результат 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.'- ');
        }
    }
}
person noufalcep    schedule 30.08.2016
comment
спасибо за помощь дружище. Теперь не могли бы вы помочь мне настроить его с помощью выбора, и это как вариант. ‹выберите› ‹опция›1 Категория‹/опция› ‹опция›- 1 подкатегория‹/опция› ‹опция›- 2-я 1 подкатегория‹/опция› ‹опция›6 Категория‹/опция› ‹опция›- 6 подкатегория Категория‹/опция› ‹опция›- - 2 Подкатегория‹/опция› ‹опция›- - - 7 Подкатегория‹/опция› ‹/выбрать› - person aliasgar vanak; 30.08.2016