Concluzie de meniuri multi-nivel și lista arborescentă pe php
Ce să se aștepte din articol:
EXEMPLUL listă arbore de ieșire
lista schiţă
.De obicei, ierarhia stocată în baza de date, nu se opresc aici ... observăm că, atunci când selectați datele pe care le obține o listă de sortat nu este în ordinea dorită și ori de câte ori necunoscute la nivelul de imbricare al fiecărui element (în funcție de metoda de stocare a datelor ierarhice în baze de date relaționale ...).
Exemplu array id, pid (id Parant)
Datele o dată într-o matrice PHP. Fiecare element al listei noastre ierarhice conține informații despre strămoșul (părinte) - „pid“. Ei bine, restul ...
În acest exemplu, procedura poate fi urmărită - aceasta este pentru claritate, apoi, în scenariul de test, am dat peste cap în mod deliberat în sus, și veți vedea corectitudinea script-ul.
Metoda prezentată se bazează pe matrice recursivă a datelor, fără utilizarea de recursie în sensul clasic (funcții de distribuție la sine). Apropo: în metoda, în general, nu va fi funcții definite de utilizator.
transformare script PHP, înainte de ieșire matrice
Acest cod este „transformare“ creează un nou rezultat matrice $ care a produs datele (sortate în ordinea corectă și nivelul fiecărui element adăugat) pentru a afișa lista ierarhică mai multe niveluri.
Concluzie Având în vedere nivelul de
Rămâne doar să se retragă prin intermediul liniei (foreach) enumerarea, luându-se în considerare numai nivelul de imbricare.
Deși algoritmul și liniară, dar a trebuit să adăugați câteva pentru a determina dacă „rudenie“ a elementului următor.
Despre designul meniului drop-down multi-nivel, am scrie un articol mai târziu.
cod de script complet și exemplu de lucru
EXEMPLUL listă arbore de ieșire
Recursivitatea pentru PHP și un exemplu de ieșire dintr-o structură de arbore în
/Recursivitatea în sensul cel mai deplin - o funcție în sine numesc (nu rekusrsivny ocolind matrice). Sau „Cum nu este de dorit.“ Dar, util pentru a vedea modul în care aranja afișarea ierarhică în
/