Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Łączenie dwóch tablic i usuwanie wybranych rekordów
Zendoo
post
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:
  1. foreach ($tablica['rozmiary'] as $v1 => $v2)
  2. {
  3. foreach ($tablica['szczegoly'] as $v3 => $v4)
  4. {
  5. $wynik[] = array ('name' => $v2['nazwa'], 'price' => $v2['cena'], 'width' => $v4['width'], 'height' => $v4['height']);
  6. }
  7. }

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 (IMG:style_emoticons/default/smile.gif) .
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 26.08.2025 - 00:10