суббота, 14 сентября 2013 г.

Создание и вывод древовидных структур на PHP



Создание и вывод древовидных структур на PHP




$data = array(
    array('id' => 1, 'pid' => 0, 'name' => '1'),
    array('id' => 2, 'pid' => 1, 'name' => '1.1'),
    array('id' => 3, 'pid' => 2, 'name' => '1.1.1'),
    array('id' => 4, 'pid' => 0, 'name' => '2'),
    array('id' => 5, 'pid' => 0, 'name' => '3'),
    array('id' => 6, 'pid' => 5, 'name' => '3.1'),
    array('id' => 7, 'pid' => 5, 'name' => '3.2'),
);
//теперь создаем массив в виде дерева
$tree = array();
foreach ($data as $row) {
    $tree[(int) $row['pid']][] = $row;
}
// рекурсивная функция для вывода дерева
function treePrint($tree, $pid=0) {
    if (empty($tree[$pid]))
        return;
    echo '
'; foreach ($tree[$pid] as $k => $row) { echo '
'; echo $row['name']; if (isset($tree[$row['id']])) treePrint($tree, $row['id']); echo '
'; } echo '
';
}
//вызов функции
treePrint($tree);

Комментариев нет:

Отправить комментарий

Постоянные читатели

Популярные сообщения