Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ArrayObject na drzewo
Forum PHP.pl > Forum > PHP > Object-oriented programming
craker
Witam,
posiadam taką strukturę zorganizowaną na ArrayObject:

Kod
Array{
[0] => array { [0] => "INDEX", [1] => "Opis", ['children'] => array() },
[1] => array { [0] => "INDEX.Temp", [1] => "Opis 1", ['children'] => array() },
[2] => array { [0] => "INDEX.Kosz", [1] => "Opis 2", ['children'] => array() },
[3] => array { [0] => "INDEX.Temp.wolne", [1] => "Opis 3", ['children'] => array() },
[4] => array { [0] => "INDEX.Temp.wolne1", [1] => "Opis 4", ['children'] => array() },
[5] => array { [0] => "INDEX.Temp.wolne.wolne3", [1] => "Opis 5", ['children'] => array() },
[6] => array { [0] => "INDEX.Temp.wolne.wolne4", [1] => "Opis 6", ['children'] => array() },
}


i teraz tak, INDEX, INDEX.Temp i INDEX.Kosz to są główne gałęzie natomiast INDEX.Temp.* to są dzieci

teraz chciałbym osiągnąć taką strukturę:

Kod
Array{
[0] => array { [0] => "INDEX", [1] => "Opis", ['children'] => array() },
[1] => array { [0] => "INDEX.Temp", [1] => "Opis 1", ['children'] => array(
                                                           [0] => array { [0] => "INDEX.Temp.wolne", [1] => "Opis 3", ['children'] => array(
                                                                                     [0] => array { [0] => "INDEX.Temp.wolne.wolne3", [1] => "Opis 5", ['children'] => array() },
                                                                                     [1] => array { [0] => "INDEX.Temp.wolne.wolne4", [1] => "Opis 6", ['children'] => array() }) },
                                                            [1] => array { [0] => "INDEX.Temp.wolne1", [1] => "Opis 4", ['children'] => array() } ) },
[2] => array { [0] => "INDEX.Kosz", [1] => "Opis 2", ['children'] => array() },


}



i mam problem jak zrobić takie drzewo questionmark.gif oczywiście zagłębienia w INDEX.Temp.wolne, INDEX.Temp.wolne3 można tworzyć w głąb jeszcze.

Samą główną strukturę i pierwsze zagłębienie potrafię zrobić, ale mam problem z wewnętrznymi zagłębieniami, ponieważ zagłębienie jest tworzone w oparciu o początkowe wartości czyli te po INDEX, albo INDEX.Temp, INDEX.Kosz i w zależności ile jest członów po INDEX albo po INDEX.Temp to tyle się tworzy zagłębień


Proszę o pomoc

ewentualnie zamiast indeksów 0, 1, 2 itp moge dać nazwy, czyli INDEX, INDEX.Kosz itp itd smile.gif
dr_bonzo
Pakujesz wszystkie rekordy do tablicy pod indeksem rownym "INDEX.Temp" itd
Potem przegladasz wszystkie rekordy raz jeszcze, dla kazdego z nich znajdujesz "id" rodzica, np. "INDEX", pobierasz tego rodzica z poprzedniej tabeli i dokladasz do niego jako kolejne dziecko. Na koniec bierzesz glowny wezel (roota) i masz cale drzewo.
craker
@belliash tak musi być, bo to jest podstawowa struktura katalogów jaką pobieram z IMAP'a

@dr_bonzo a możesz jakiegoś gotowca zasunąć questionmark.gif smile.gif

czy mógłby mi ktoś pomoć questionmark.gif to jest bardzo ważne i potrzebne mi
dr_bonzo
@craker: nie mam czasu na gotowca. Mam inne wazne i potrzebne rzeczy na glowie.

Po prostu przegladasz wszstkie elementy dla kazdego znajdujesz rodzica i dokladasz go jako dziecko tego rodzica - poprzedni post opisywal implementacje tego.
craker
przecież dla Ciebie to 10 minut pisania a ja będę siedzieć ze dwa dni i tak pewnie mi nie wyjdzie

nikt się na tym nie zna naprawdę questionmark.gif
kwiateusz
zna, ale nie każdy będzie nad tym siedział bo Ci sie nie chce, poświęcisz 2 dni ale sie czegoś chociaż nauczysz, dla gotowców jest giełda ofert
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.