Имеем:
таблицу 'elements' в БД с полями id, id_parent, caption
id - элемент дерева, id_parent - id родителя элемента, caption - наименование элемента.
Необходимо:
создать ассоциативный массив $arr[] с полями 'id', 'id_parent', 'caption'
чтобы обращаться к элементу массива по 'id' - $arr["119"]['caption'] и получить название 119-го элемента массива.
Я так понимаю, что здесь без рекурсии не обойтись, только вот запутался совсем, уже второй день сижу.
PHP:
скопировать код в буфер обмена
function structure_array($db, $id_parent=0, $level=0) { $result = get_mysql_query($db, "SELECT * FROM `elements` WHERE `id_parent` = $id_parent;"); { { $st[]=$row["id"]; $st2=structure_array($db, $row["id"], $level + 1); foreach ($st2 as $key => $value) { $st[]=$key; } } } return($st); }
(Отредактировано автором: 23 Ноября, 2009 - 23:36:12)
|