Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP5]Zagnieżdżone foreach na tym samym obiekcie.
szczurek
post 4.09.2009, 07:12:21
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 1.10.2006
Skąd: Bydgoszcz

Ostrzeżenie: (10%)
X----


Witam,
mam taki problem.

Obiekt z kategoriami różnych poziomów. Pobieram je z bazy danych i chciałbym później wylistować
  1. $obiekt;
  2. $obiekt2 = clone $obiekt;
  3.  
  4. foreach($obiekt as $k=>$v)
  5. {
  6. if(warunek pierwszego poziomu kategorii)
  7. {
  8. echo $v->nazwa;
  9.  
  10. foreach($obiekt2 as $k2=>$v2)
  11. {
  12. if(warunek podrzednej kategorii)
  13. {
  14. echo $v2->nazwa;
  15. }
  16. }
  17. }
  18.  
  19. }


To daje mi taki wynik, że listuje mi pierwszą kategorię główną i jej podkategorie a później się zatrzymuje.

Tzn. pierwsza zewnętrzna pętla jest wykonywana tylko raz a wewnętrzna normalnie.

Ma ktoś pomysł jak zmusić pierwszą pętle do wykonania się tyle razy ile jest naprawdę pozycji?

Pozdrawiam


--------------------
"Nie masz żadnej szansy, ale ją wykorzystaj" Arthur Schopenhauer
wiersze
Go to the top of the page
+Quote Post
alegorn
post 4.09.2009, 07:54:06
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


w ten sposob, ile bys tego nie zapetlil - zawsze bedziesz mial ograniczona na sztywno liczbe poziomow.

tak naprawde wiele zalezy od tego jak masz zrobiona baze danych

bardzo ciekawy art. :mysql tree structure

jesli chcesz robic to samemu zapewne przyda ci sie wiedza o rekurencji, i referencjach

ja tam z autopsji przyznaje ze za kazdym razem pisze inaczej ta klase, powod? bo lubie tongue.gif
ale tak naprawde zbyt wiele zalezy od formatu danych by to dalo sie w 100% ujednolicic.


j.

Ten post edytował alegorn 4.09.2009, 07:59:57
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 02:19