Opracować musze drzewo o wielokrotnym zagniezdzeniu, jednak mi to nie wychodzi - pewnie z braku wiedzy w dziedzinie php.
Mam tabele w takiej formie
Id | sub | poziom | pozycja | name
3. | 0 | 0 | 1 | A
2. | 1 | 1 | 1 | B
1. | 2 | 2 | 2 | C
4. | 2 | 2 | 1 | D
5. | 1 | 1 | 1 | E
6. | 0 | 0 | 0 | F
Struktura powinna wobec tego wyglądać tak:
A.
- B
-- D
-- C
- E
FRozpisałem sobie taki algorytm
Kod
for ($i=1; $i<=$rows; $i++){
echo $id[$i];
$t[] = NULL;
for ($j=1; $j<=rows; $j++){
if ($sub[$j] == $id[$i] AND $sub[$j] != t[$j]){
for ($k=0; $k<=count($t);$k++){
echo $id[$j];
$t[$j] == $id[$j]
}
}
}
}
echo $id[$i];
$t[] = NULL;
for ($j=1; $j<=rows; $j++){
if ($sub[$j] == $id[$i] AND $sub[$j] != t[$j]){
for ($k=0; $k<=count($t);$k++){
echo $id[$j];
$t[$j] == $id[$j]
}
}
}
}
Niestety kod nie działa tak jak zamierzałem, z racji że nie wiem jak zdefiniować te tabele, bo mają pełnić one role taką że jeżeli znajdzie element w pętli J i wyświetli dany element, to ID tego elementu powinno zostać zapisane w BD, by algorytm mógł je pominąc przy kolejnym sprawdzaniu sprawdzaniu. Tylko. Zaś jak przejdzie do inkrementacji I to tabela powinna zostać wyczyszczona.
Nie wiem czy dobrze rozumuje, prosiłbym was o pomoc z rozwiązaniem tego, bo sobie nie potrafie z tym dać rady, co do powyższych tabel, to opcjonalnie powinno wystarczyć id i sub alternatywnie poziom określa poziom zagłębienia 0 - główne, 1 -pz pierwszy, 2 - pz drugi itd.
W sumie to zależy mi do zagłębienia do poziomu 3, ale jeżeli by realizowało to więcej zagłębień było by bardziej przyszłościowe, bym za pare miesięcy nie musiał się zastanawiać jak 4 poziom czy 5 zrealizować.