![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 27.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam. To mój pierwszy post, chociaż forum czytuje od dłuższego czasu, ale podobnego problemu nie znalazłem jak do tej pory. Mam dostarczane z zewnątrz tablice w postaci ('rozmiary' i 'szczegoly' z obu tablic zawsze odpowiadają sobie kolejnością i jest ich tyle samo mimo, że w jednej klucze są oznaczane cyframi, a w drugiej literami):
Kod Array ( [rozmiary] => Array ( [0] => Array ( [nazwa] => XS [cena] => 1 ) [1] => Array ( [nazwa] => S [cena] => 2 ) [2] => Array ( [nazwa] => M [cena] => 3 ) [itd...] ) [szczegoly] => Array ( [XS] => Array ( [nazwa_rozmiaru] => XS [width] => 100 [height] => 100 ) [S] => Array ( [nazwa_rozmiaru] => S [width] => 200 [height] => 200 ) [M] => Array ( [nazwa_rozmiaru] => M [width] => 300 [height] => 300 ) ) ) I chciałbym z tego uzyskać tablice takiej postaci i później (lub wcześniej jeszcze przed połączeniem tablic, nie wiem jak będzie wygodniej) usunąć z niej wszystkie tablice gdzie wartość 'nazwa' jest inna niż 'S' albo 'M' (różnych rozmiarów może być oczywiście więcej niż na przykładzie, mnie interesuje zostawienie tylko wybranych 2-3): Kod Array ( [0] => Array ( [nazwa] => XS [cena] => 1 [width] => 100 [height] => 100 ) [1] => Array ( [nazwa] => S [cena] => 2 [width] => 200 [height] => 200 ) [2] => Array ( [nazwa] => M [cena] => 3 [width] => 300 [height] => 300 ) [3] => Array ( [nazwa] => L [cena] => 4 [width] => 400 [height] => 400 ) [itd...] ) Próbowałem to osiągnąć za pomocą foreach:
oraz dwóch osobnych foreach łączonych za pomocą array_merge, ale to nadal nie jest to czego mi trzeba, nie wspominając już o późniejszym usuwaniu (chociaż tutaj myślałem o zastosowaniu array_intersect). Proszę bardziej o sugestie jakimi funkcjami powinienem się zainteresować i jak powinienem spróbować ugryźć ten problem zamiast o gotowe rozwiązania ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 30 Dołączył: 9.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 27.04.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki wielkie za odpowiedź, jedyna zmiana jaką wykonałem w powyższym kodzie, aby uzyskać to czego potrzebowałem to zmiana (in_array...) na (!in_array...) tak żeby zostawić, a nie usuwać te rozmiary, których potrzebuje
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 14:58 |