![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 26 Dołączył: 23.01.2009 Skąd: eZ Systems Ostrzeżenie: (0%) ![]() ![]() |
Witam,
ostatnio męczę się nad grupowaniem elementów tablicy. W trakcie działania programu zostaje utworzona tablica: Kod Array ( [0] => Array ( [?projekt_nazwa] => Projekt nr 1 [?projekt_opis] => <p>opis projektu</p> [?projekt_obraz] => 8246ee1a339805dc58198b9a08763950.png ) [1] => Array ( [?projekt_nazwa] => Projekt nr 1 [?projekt_opis] => <p>opis projektu</p> [?projekt_obraz] => fcdb6e8a59d27792679f450cdd0f903a.png ) [2] => Array ( [?projekt_nazwa] => Projekt nr 1 [?projekt_opis] => <p>opis projektu</p> [?projekt_obraz] => d660d08c57fb6b4c13388c1972e1574a.png ) [3] => Array ( [?projekt_nazwa] => Projekt nr 1 [?projekt_opis] => <p>opis projektu</p> [?projekt_obraz] => d7ecc42d59bb1082f78420d764855d69.png ) [4] => Array ( [?projekt_nazwa] => War 1 [?projekt_opis] => <p>Testowy projekt</p> [?projekt_obraz] => ecc258c8e9cf4b3cd62eaddf71b03b47.jpeg ) [5] => Array ( [?projekt_nazwa] => War 1 [?projekt_opis] => <p>Testowy projekt</p> [?projekt_obraz] => b843abd4d45c08d3f3f6cf92c46410bd.jpg ) [6] => Array ( [?projekt_nazwa] => 1 [?projekt_opis] => [?projekt_obraz] => ) [7] => Array ( [?projekt_nazwa] => [?projekt_opis] => <p>Witam!</p> [?projekt_obraz] => ) [8] => Array ( [?projekt_nazwa] => dfgd [?projekt_opis] => <p>fdd</p> [?projekt_obraz] => ) [9] => Array ( [?projekt_nazwa] => Kreator [?projekt_opis] => <p>Projekty</p> [?projekt_obraz] => ) [10] => Array ( [?projekt_nazwa] => Testowy [?projekt_opis] => <p>k,j</p> [?projekt_obraz] => ) [11] => Array ( [?projekt_nazwa] => projekt 2 [?projekt_opis] => <p>opissssssss drugi</p> [?projekt_obraz] => ) ) Mój problem polega na tym, aby grupować elementy o tych samych atrybutach [?projekt_nazwa] , aby powstało coś w stylu: Kod Array ( [0] => Array ( [?projekt_nazwa] => Projekt nr 1 [?projekt_opis] => <p>opis projektu</p> [?projekt_obraz] => 8246ee1a339805dc58198b9a08763950.png [?projekt_obraz] => fcdb6e8a59d27792679f450cdd0f903a.png [?projekt_obraz] => d660d08c57fb6b4c13388c1972e1574a.png [?projekt_obraz] => d7ecc42d59bb1082f78420d764855d69.png ) [4] => Array ( [?projekt_nazwa] => War 1 [?projekt_opis] => <p>Testowy projekt</p> [?projekt_obraz] => ecc258c8e9cf4b3cd62eaddf71b03b47.jpeg [?projekt_obraz] => b843abd4d45c08d3f3f6cf92c46410bd.jpg ) [8] => Array ( [?projekt_nazwa] => dfgd [?projekt_opis] => <p>fdd</p> [?projekt_obraz] => ) [9] => Array ( [?projekt_nazwa] => Kreator [?projekt_opis] => <p>Projekty</p> [?projekt_obraz] => ) [10] => Array ( [?projekt_nazwa] => Testowy [?projekt_opis] => <p>k,j</p> [?projekt_obraz] => ) [11] => Array ( [?projekt_nazwa] => projekt 2 [?projekt_opis] => <p>opissssssss drugi</p> [?projekt_obraz] => ) ) Prosiłbym o wskazówki, w którym kierunku mam podążać aby osiągnąć pożądany efekt. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 6 Dołączył: 15.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Pojawia się podstawowy problem: indeksy w tablicy asocjacyjnej nie mogą się powtarzać.
Obejdę trochę ten problem. Zakładam, że pierwsza tablica to powiedzmy $tab1. Tworzysz tablice indeksów - $indeksy. Lecisz po kolei elementy tablicy $tab1 (może być foreach) i indeksujesz sobie klucze po których grupujesz sprawdzając czy wcześniej nie było już takiego indeksu. Jeśli był, to pakujesz obrazek do tabeli wyjściowej o indeksie jaki wyciągniesz z $indeksy. Jeśli nie było to przepisujesz cały jeden element z $tab1 do $tab2.
Ten post edytował bleblok 12.02.2011, 18:05:36 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 26 Dołączył: 23.01.2009 Skąd: eZ Systems Ostrzeżenie: (0%) ![]() ![]() |
wielkie dzięki
oto mi właśnie chodziło (IMG:style_emoticons/default/smile.gif) Mam teraz trochę inny problem, ale podobny do powyższego. Różnica polega na tym, że występuje kilka takich powtórzeń: TABLICA WEJŚCIOWA: Kod Array ( [0] => Array ( [?imie] => Jacek [?nazwisko] => Placek [?obraz] => 0bc171c32acc6550e986614718155da0.jpg [?projekt_nazwa] => Projekt 1 [?id] => 1 [?skill] => Machanie [?sport] => Tenis ) [1] => Array ( [?imie] => Jacek [?nazwisko] => Placek [?obraz] => 0bc171c32acc6550e986614718155da0.jpg [?projekt_nazwa] => Projekt 2 [?id] => 1 [?skill] => Kopanie [?sport] => Futbol ) [2] => Array ( [?imie] => Jacek [?nazwisko] => Placek [?obraz] => 0bc171c32acc6550e986614718155da0.jpg [?projekt_nazwa] => Projekt 1 [?id] => 1 [?skill] => Kopanie [?sport] => Tenis ) ) Powyższą tablicę przerabiam funkcją:
Na skutek czego powstaje mi taka TABLICA WYJŚCIOWA: Kod Array ( [0] => Array ( [?id] => 1 [?imie] => Jacek [?nazwisko] => Placek [?obraz] => 0bc171c32acc6550e986614718155da0.jpg [?projekt_nazwa] => Array ( [0] => Projekt 1 [1] => Projekt 2 [2] => Projekt 1 [3] => Projekt 2 [4] => Projekt 1 [5] => Projekt 2 [6] => Projekt 1 [7] => Projekt 2 ) [?skill] => Array ( [0] => Machanie [1] => Machanie [2] => Kopanie [3] => Kopanie [4] => Machanie [5] => Machanie [6] => Kopanie [7] => Kopanie ) [?kurs] => Array ( [0] => Tenis [1] => Tenis [2] => Tenis [3] => Tenis [4] => Futbol [5] => Futbol [6] => Futbol [7] => Futbol ) ) ) Chciałbym uniknąć tego powtarzania się (tworzy się iloczyn kartezjański?). Jak to można zmodyfikować? Array_unique mi wyświetla tylko jedną pozycję z danej podtablicy. Prosiłbym o pomoc w naprowadzeniu na rozwiązanie. ===================== Znalazłem rozwiązanie. Należy się posłuzyć if i funkcją in_array()
Ten post edytował sunpietro 18.02.2011, 20:40:03 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 08:20 |