Сейчас: 17:04:45   24-го апреля 2024 г.
UsefulScript.ruСкриптыРазныеСкрипт иерархического дерева
7
23

Скрипт построения иерархического дерева

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

Предположим, все наши данные хранятся в массиве вида:

PHP код:
<?php
$tree 
= array(
    array(
'text' => 'Уровень 1''id' => 1'parent_id' => 0),
    array(
'text' => 'Подуровень 1.1''id' => 2'parent_id' => 1),
    array(
'text' => 'Подуровень 1.2''id' => 3'parent_id' => 1),
    array(
'text' => 'Подуровень 1.3''id' => 4'parent_id' => 1),
    array(
'text' => 'Уровень 2''id' => 5'parent_id' => 0),
    array(
'text' => 'Подуровень 2.1''id' => 6'parent_id' => 5),
    array(
'text' => 'Подуровень 2.2''id' => 7'parent_id' => 5),
    array(
'text' => 'Уровень 3''id' => 8'parent_id' => 0),
    array(
'text' => 'Подуровень 3.1''id' => 9'parent_id' => 8),
    array(
'text' => 'Подуровень 3.1.1''id' => 10'parent_id' => 9),
    array(
'text' => 'Подуровень 3.1.2''id' => 11'parent_id' => 9),
    array(
'text' => 'Подуровень 3.2''id' => 12'parent_id' => 8),
    array(
'text' => 'Подуровень 3.2.1''id' => 13'parent_id' => 12),
    array(
'text' => 'Подуровень 3.2.2''id' => 14'parent_id' => 12)
);
?>

Тогда для получения иерархического дерева из такого массива, содержащего собственно сам текст, уникальный идентификатор и идентификатор родителя, понадобится функция get_tree(), которую Вам необходимо разместить на страничке сайта следующим образом:

PHP код:
<?php
function get_tree($tree$parent_id) {
$html '';
 foreach (
$tree as $row) {
    if (
$row['parent_id'] == $parent_id) {
        
$html .= '<li>' "\n";
        
$html .= '    ' $row['text'] . "\n";
        
$html .= '    ' get_tree($tree$row['id']);
        
$html .= '</li>' "\n";
    }
 }
return 
$html '<ul>' $html '</ul>' "\n" '';
}
?>

Теперь для вывода иерархического дерева в нужном месте достаточно вызвать добавленную ранее функцию при помощи echo get_tree($tree, 0);


Как видите, ничего сложного в построение иерархических деревьев нет, главное правильно записать в массив идентификаторы родителей для каждого элемента (для корневых элементов parent_id устанавливаем 0).

Дата создания: 18:41:26 15.07.2012 г.
Посещений: 8255 раз(а).

Закрыть
Ваше имя:
370 + 18 =
Добавить комментарий:
Ваше имя:
370 + 18 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 6

Как Вы узнали о нашем сайте?