За последние 24 часа нас посетили 16900 программистов и 1701 робот. Сейчас ищут 1012 программистов ...

Как сделать дерево неограниченной вложенности ?

Тема в разделе "PHP для новичков", создана пользователем AndriiP, 4 май 2017.

Метки:
  1. AndriiP

    AndriiP Новичок

    С нами с:
    20 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Был просто массив. Отсортировал массив по parent_id. Как мне сделать дерево неограниченной вложенности рекурсией ?
    PHP:
    1. $cat_data = unserialize($c_cat);
    2. $result = array();
    3.  
    4. function get_cat($cat_data) {
    5.     foreach ($cat_data as $key => $category) {
    6.        
    7.         if(empty($result[$category->parent_id])) {
    8.                     $result[$category->parent_id] = array();
    9.                 }  
    10.                 $result[$category->parent_id][] = $category;
    11.     }
    12.     return $result;
    13. }
    14. $result = get_cat($cat_data);
    15. print_r($result);
    1111.jpg 22222.jpg
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Вы в курсе, что в вашем же вопросе ответ дан? Рекурсией и сделать. Классическая задача. Перебирете элементы. Проверяете, есть ли у элемента ветвь. Если есть, засылаете ее в ту же функцию и так далее. При этом собираете листья ретурном. Когда рекурсия дойдет до логического конца, она начнет "разматываться", и ретурны начнут по цепочке возвращать содержимое листьев.