Concluzie de meniuri multi-nivel și lista arborescentă pe php

Ce să se aștepte din articol:

Concluzie de meniuri multi-nivel și lista arborescentă pe php

EXEMPLUL listă arbore de ieșire

Concluzie de meniuri multi-nivel și lista arborescentă pe php

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

Concluzie de meniuri multi-nivel și lista arborescentă pe php

EXEMPLUL listă arbore de ieșire

Recursivitatea pentru PHP și un exemplu de ieșire dintr-o structură de arbore în
 / . Un exemplu de lucru.

Concluzie de meniuri multi-nivel și lista arborescentă pe php

lista schiţă

 .