Создание древовидной структуры массива из обычного массива PHP | PROG-TIME

Создание древовидной структуры массива из обычного массива PHP

11.03.2023
Содержание:

В новой записи я покажу вам как создать древовидную структуру массива с потомками и родительскими элементами. На входе мы будем получать элементы на одном уровне, и полученный массив будем перестраивать в древовидную структуру.

Такой способ отлично подойдёт для создания сложного многоуровневого меню, с неограниченных количеством вложений.

Для своего проекта я создал таблицу в БД, для записи категорий. Категории имеют следующие поля:

  • id
  • title
  • id_parent

Получается что каждый элемент знает своего родителя, но не знает своих потомков.

Далее я прописал функцию которая в качестве аргумента принимает список элементов.

function createTreeCategorys($arrListCategory)
{
    $tree = array();

    foreach ($arrListCategory as $id => &$node) {
        //Если нет вложений
        if (!$node['id_parent']){
            $tree[$id] = &$node;
        } else {
            //Если есть потомки то перебераем массив
            $arrListCategory[$node['id_parent_category']]['childs'][$id] = &$node;
        }
    }
    return $tree;
}

На этом всё!
Больше интересных статей в нашей группе - https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи - https://vk.com/prog_time
Так же прокачивайте свои навыки на нашем канале - https://www.youtube.com/c/ProgTime
Наши планы
  • Написание материала для курса по разработке ботов на Telegram
  • Разработка универсального парсера на PHP

Поддержите мой сайт!

Каждый переведённый донат, мотивирует на создание новых записей и уроков на YouTube

Ссылка на мой KWORK