![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
mam 2 tablice:
Jak stworzyć z tych dwóch tablic 3 tablicę $array3 zawierającą tylko to co się nie powtarza obu tablicach a znajduje się w $array2
próbowałem porównać dwie tablice poleceniem ale pokazuje 0 elementów. |
|
|
![]()
Post
#2
|
|
Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Suma tablic: array_merge() łączy tablice, a array_unique() usuwa duplikaty.
Częśc wspólna: array_intersect() tworzy przecięcie tablic. Różnica: array_diff() wykonuje różnicę zbiorów/tablic. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 3 Dołączył: 23.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
1. wykonuje najpierw połączenie tablic $array3 = array_merge($array1,$array2), i jak rozumiem mam jedną tablicę $array3 później usuwam z niej duplikaty poprzez $array3= array_unique($array3)?
2. część wspólna ale których tablic $array4 = array_intersect($array1,$array2)? 3. różnica - $array5 = array_diff($array3, $array4) ? cały kod: i w $array5 mam to co ja chce? chyba nie bardzo działa wg tego co napisałem wyżej zwiaca:
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 22 Dołączył: 11.04.2010 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Jeśli wykonywałeś swój kod na podanych przez siebie tablicach to w ogóle dziwne, że w jakikolwiek sposób to działało ponieważ w większości te funkcje nie nadają się do wielowymiarowych tablic. Przynajmniej u mnie wywalało jak najbardziej poprawny błąd (IMG:style_emoticons/default/smile.gif) . Dlatego też najpierw zamieniam tablicę dwuwymiarową na jednowymiarową, i na niej dokonuję operacji. Ogólnie kod możnaby zdecydowanie skrócić, ale postawiłem na uniwersalność, dzięki temu nie musisz podawać kluczy ponieważ najpierw jest tworzona tablica, która zawiera te klucze. Założenie które musi być spełnione jest takie, że tablica jest dwuwymiarowa oraz ilość poszczegolnych elementów musi być stała. Natomiast to co na pewno można zrobić to zrezygnować ze zmiennych array_master i array_slave i wrzucić ich wartość bezpośrenio do array_diff, chciałem żeby kod był czytelny. W implode i explode tak jak wspomniałem separator nie może występować w wartościach z wiadomych powodów. Kod można łatwo zmienić tak, aby działal z innego rodzaju tablicami (IMG:style_emoticons/default/wink.gif) Ten post edytował session 24.05.2015, 10:08:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 09:45 |