Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 172 Pomógł: 0 Dołączył: 22.09.2002 Skąd: Gorzów Wlkp Ostrzeżenie: (0%)
|
Witam.
Co do tematu drzew to można go ciągnąć w nieskończoność - ale ja nie o tym. Mam zaimplementowaną klasę która buduje mi drzewo na podstawie danych z bazy. I nie jest problemem wyświętlić te dane w postaci zagnieżdzonej listy - ale albo za dużo pracuje, albo nie mogę sobie poradzić z przekopiowaniem tej listy do wielwymiarowej tablicy (budowanej dynamicznie). Chcę w rezultacie osiągnąć coś takiego:
Dodam jak wyświetlam sobie to w postaci listy HTML
Jak sami widzicie prostą rekurencją mogę to bez problemu osiągnąć dzieki wykorzystaniu kilku metod obiektu tree. Pytanie jak korzystając z tych metod stworzyć dynamicznie tablicę jak powyższa. Z góry dzieki za podpowiedzi. pozdrawiam anas Ten post edytował anas 11.07.2006, 19:43:49 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 14.05.2005 Skąd: Pasikurowice (koło Wrocławia) Ostrzeżenie: (0%)
|
Cytat Problemem jest to ze ciezko jest "dynamicznie" odwolywac sie do x kluczy np O ile dobrze rozumiem w czym rzecz to... własnie za pomocą referencji da się to załatwić. Swego czasu wyświetlałem iteracyjnie (bez rekurencji) drzewko w postaci wielowymiarowej tablicy i odwołanie do odpowiedniej "gałęzi" można zapisywać $aTree['root']['node1']['node2'] [...]dostanie sie do tych kluczy bez pomocy eval jest chyba nie mozliwe. W tym przypadku musisz podawac referecje wskazujaca na odpowiedni klucz w tablicy do ktorego zostana przypisane kolejne dzieci. (gdzie $branch to gałąź, na której się teraz znajdujemy). Można pójść nawet dalej i utworzyć tablicę takich referencji. Wszystko bez użycia eval(). Natomiast sam sposób z wielowymarową tablicą jest - tak mi się wydaje - grubo przekombinowany. Do samego wyświetlania drzewka (iteracyjnie) wystarczy tablica z zapisaną głębokością, np.
Z rekurencji nie zawsze warto i w zasadzie nie zawsze można skorzystać - kiedyś potrzebowałem plugin do Smarty, który wyświetli drzewko, a ponieważ chciałem mieć blok parsowany na każdym węźle ("liściu"), funkcja musiała działać iteracyjnie. |
|
|
|
anas Drzewka raz jeszcze. 11.07.2006, 19:39:33
hwao wbrew pozorom nie jest to latwa czynnosc...
Sam k... 11.07.2006, 20:01:57
orson witam
RecursiveIterator i sprawdzanie czy is_arra... 11.07.2006, 20:09:31
bigZbig @anas - uzyj eval
--- edit ---
Sorrka nie zauwaz... 14.07.2006, 11:41:45
bigZbig @.johnny - potrzebujesz plugin do Smarty wyswietla... 17.07.2006, 07:30:10
.johnny Dzięki za link, widziałem ten artykuł już wcześnie... 27.07.2006, 10:03:03 
bigZbig Cytat(.johnny @ 27.07.2006, 11:03 ) lubię... 27.07.2006, 13:11:26
php programmer Hm, ale czy na pewno celowe jest ładowanie
drzewa ... 27.07.2006, 13:25:55 ![]() ![]() |
|
Aktualny czas: 12.12.2025 - 04:19 |