Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodawanie danych do tablicy rekursywnej, w odpowiednie miejsce
Sztef89
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.12.2010

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


Witam, próbuje zrobić wyświetlanie komentarzy z opcją rodzic/dziecko czyli komentarz i odpowiedzi do nich. Google podpowiada że trzeba użyć tablic rekursywnych aby wygenerować drzewo komentarzy. Niestety z takimi tablicami nie miałem okazji się bawić do tej pory.

Mam taką tablicę:

  1. $dane = array ( "14" => array ("ID" => "14", "PARENT" => "0", "18" => array ("ID" => "18", "PARENT" => "14"),"19" => array ("ID" => "19", "PARENT" => "14")), "24" => array ("ID" => "14", "PARENT" => "0"));
  2.  
  3. print_r($dane);


  1. Array
  2. (
  3. [14] => Array
  4. (
  5. [ID] => 14
  6. [PARENT] => 0
  7. [18] => Array
  8. (
  9. [ID] => 18
  10. [PARENT] => 14
  11. )
  12.  
  13. [19] => Array
  14. (
  15. [ID] => 19
  16. [PARENT] => 14
  17. )
  18.  
  19. )
  20.  
  21. [24] => Array
  22. (
  23. [ID] => 14
  24. [PARENT] => 0
  25. )
  26.  
  27. )


Chciałbym dołączać dane do tej tablicy w pętli while po pobraniu danych z bazy.

I teraz pojawia się pytanie: Jak dodać np. do 24 kolejne dziecko ? Albo jak dodać do 19 dziecko ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
marins
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 4
Dołączył: 12.07.2003

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


proponuje Ci zrobić to na obiektach:

  1. class komentarz {
  2.  
  3. //tutaj trzymasz tylko komentarze z PID 0
  4. static $mainArray = array();
  5.  
  6. //tutaj trzymasz wszystkie obiekty na zasadzie ID => obiekt komentarz
  7. static $idToObject = array();
  8.  
  9. //lista dzieci dla tego elementu
  10. private $childrens = array();
  11.  
  12. public function __construct($id,$parent_id,$tresc) {
  13. //przypisujesz wszyskie parametry
  14.  
  15. //dodajesz ten obiekt do $idToObject z kluczem jako id i obiektem
  16. self::$idToObject[$id] = $this;
  17.  
  18. if ( $parent_id == 0 ) {
  19. self::$mainArray[] = $this;
  20. }
  21. }
  22.  
  23.  
  24. public function addchildren(komentarz $object) {
  25. $this->childrens[] = $object;
  26. }
  27.  
  28. //generujesz html dla pojedynczego komentarza
  29. public function print() {
  30.  
  31. }
  32.  
  33. public function getChildrens() {
  34. return $this->childrens;
  35. }
  36. }


aby wyswietlic wszystkie komentarze z PARENT = 0 - robisz petle po

komentarz::$mainArray
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 13.10.2025 - 21:28