Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Tworzenie drzewa
bemol
post
Post #1





Grupa: Zarejestrowani
Postów: 286
Pomógł: 29
Dołączył: 5.04.2007
Skąd: Rymanów Zdrój/Rzeszów

Ostrzeżenie: (0%)
-----


Witam.

Muszę stworzyć strukturę katalogową, w tym przypadku będzie to struktura drzewa, ponieważ jeden z katalogów jest głównym.
Uproszczona struktura folderu wygląda następująco:
  1. $array[$i]->id
  2. $array[$i]->nazwa
  3. $array[$i]->podrzedny_id
  4. $array[$i]->nadrzedny_id
  5. $array[$i]->level
  6. // $array[$i]->id i $array[$i]->podrzedny_id są zawsze takie same


Katalog główny (o id równym 1) w polu nadrzedny_id ma NULL, katalogi znajdujące się w katalogu głównym to takie, które mają w nadrzedny_id = 1 itd analogicznie.

Potrzebuję stworzyć html na podstawie tego, który będzie wyglądał następująco:
  1. <ul>
  2. <li>Catalog1
  3. <ul>
  4. <li>Subcatalog1
  5. <ul>
  6. <li>
  7. Subsubcatalog1
  8. </li>
  9. <li>
  10. Subsubcatalog2
  11. </li>
  12. </ul>
  13. </li>
  14. <li>
  15. Item2
  16. </li>
  17. <li>
  18. Item3
  19. </li>
  20. </ul>
  21. </li>
  22. <li>
  23. Catalog2
  24. </li>
  25. </ul>


W jaki sposób się do tego zabrać? Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
b4rt3kk
post
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Moim zdaniem wystarczy pole id_rodzica. I zrobić te rekurencyjnie.

  1. function wyszukajDzieci($id_pola) {
  2. foreach($tablica as $key => $value) {
  3. if ($value['id_rodzica'] == $id_pola) {
  4. echo $value['nazwa_pola']; // wypisuje dzieci dla obecnego węzła
  5. wyszukajDzieci($value['id_pola']); // szuka dzieci dziecka
  6. }
  7. }
  8. }


Przy założeniu, że jest to dwuwymiarowa tablica o postaci:

  1. $tablica = array(
  2. array('id_pola' => 10, 'id_rodzica' => 1, 'nazwa_pola' => 'costam'),
  3. array('id_pola' => 11, 'id_rodzica' => 1, 'nazwa_pola' => 'costam1'),
  4. // itd.
  5. );


Ten post edytował b4rt3kk 26.10.2012, 01:28:33
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 11:33