![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 21.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam tablicę wielokrotnie zagnieżdzoną. Jak zbudować funkcję (pewnie rekurencyjną), która wejdzie w każde miejsce tablicy i sprawdzi jakąś zależność. Dana zależność ma być szukana na wszystkich piętrach i we wszystkich elementach tablicy. Konkretnie chodzi o podmianę nazwy "założyciela rekordu" w zależności od tego czy był to gość (wtedy nazwę pozstawia niezmienioną), czy był to zalogowany użytkownik (wtedy kopiuje aktualną nazwę z profilu użytkownika). Rekordy trzymam w tablicy króra ma podrekordy, te mają podrekordy itd... Na razie napisałem funkcję która robi to trzy piętra w głąb i działa na zasadzie trzech zagnieżdzonych FOREACH, ale chciałbym napisać taką działającą na nieskończenie zagnieżdzonej tablicy i nie mogę sobie poradzic z przekazaniem miejsca na którym w danym momencie ma sie odbywać przekształcenie w tablicy.
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 442 Pomógł: 0 Dołączył: 27.12.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 21.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ta funkcja przechodzi przez każdy element tablicy zagnieżdzonej, ale nie pozwala na odwoływanie się do innych elementów tej tablicy. Moja tablica jest zorganizowana w sposób:
array( 0=> array( nazwa_uzytkownika => janek dane uzytkownika => array( funkcja => admin nazwa => w miedzyczasie zmieniona na jasiek ), ), 1=>array( nazwa_uzytkownika => juzek dane uzytkownika => array( funkcja => gosc nazwa => gosc ), ), ); funkcja musi sprawdzać czy istnieje pole dane użytkownika (zawierające array) i w zależności od tego pzrepisywać nazwę użytkownika lub nie. Tak jak pisałem dane te mogą się trafić na różnych piętrach tablicy. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 312 Pomógł: 9 Dołączył: 14.10.2006 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
nie wiem czy dobrze zrozumiałem ale chyba szukasz czegoś takiego:
wystarczy tą funkcję lekko zmodyfikować aby zupełnie inaczej działała. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 21.09.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem przez foreach i referencje:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 2.10.2025 - 20:27 |