![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Mam tablice wielowymiarowe:
Array ( [0] => Array ( [0] => 24 [1] => 25 [2] => 26 [3] => 27 ) [1] => Array ( [0] => 19 [1] => 21 [2] => 22 [3] => 23 [4] => 24 [5] => 25 ) [2] => Array ( [0] => 24 [1] => 25 ) [3] => Array ( [0] => 22 [1] => 23 [2] => 24 [3] => 25 ) [4] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => 11 [11] => 12 [12] => 13 [13] => 14 [14] => 15 [15] => 16 [16] => 17 [17] => 18 [18] => 19 [19] => 20 [20] => 21 [21] => 22 [22] => 23 [23] => 24 [24] => 25 ) ) I chodzi mi o to jak wyciągnąć z tego część wspólną, czyli elementy które pojawiają się w każdej tablicy. W tym wypadku rozwiązaniem będzie 24 i 25. Jest tylko 5 tablic z podtablicami, ale chciałbym żeby można było porównywać dowolną liczbę tablic. Nie wiem czy można jakoś do tego wykorzystać funkcję array_uintersect i pętle lub jakieś inne działające rozwiązanie... Bardzo proszę o pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli chodzi o podanie powtarzających się wartości to zaglądnij do array_unique i spójrz na pierwszy komentarz od góry.
Ten post edytował Blame 18.02.2010, 17:39:54 -------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
nie chodzi o wyciagniecie powtarzajacych sie elementow w jednej tablicy, bo takich nie ma
chodzi o to zeby wyciagnac powtarzajace sie w kazdej tablicy elementy czyli np.: tab1: 1, 2, 3, 4, 5 tab2: 2, 4, 5, 8 tab3: 1, 3, 4, 6 wynikiem jest: 4 bo występuje w kazdej tablicy jak to rozwiazac? jest to jeden z koncowych elementow mojej pracy dyplomowej i mam big problem ;/ |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Pokombinuj z array_intersect. A jak? Pomyśl. Skoro masz znaleźć część wspólną w wielowymiarowej to masz prosty algorytm:
1. Weź dwie pierwsze tablice. 2. Znajdź ich część wspólną. 3. Jeśli brak takiej, zakończ algorytm z wynikiem -> brak. 4. Jeśli istnieje część wspólna, weź kolejną z tablicę. 5. Jeśli nie istnieje kolejna tablica, zakończ algorytm z dotychczasowo obliczona częścią wspólną i to jest wynik. 6. Jeśli kolejna tablica istnieje idź do kroku 2. Chyba proste? To po prostu pętla while z zagnieżdżonym array_intersect i nic więcej. EDIT: Na Twoim przykładzie zrobię: tab1 intersect tab2 => 4, 5 istnieje tab3 tab3 intersect temp(4, 5) => 4 brak kolejnej tablicy, zwrócony wynik => 4 Jak zauważysz nie zawsze idziesz do ostatniej tablicy. Wystarczy, że w pewnym momencie część wspólna się "wyczyści", a algorytm zakonczy się z wynikiem pustym. Ten post edytował thek 18.02.2010, 20:59:48 -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 18.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiązany. Dzięki
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 6.06.2025 - 20:14 |