![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 0 Dołączył: 15.09.2007 Skąd: getCity(); Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chcę napisać algorytm, który z dwóch tabel A i B wypełnionymi stringami, wsadzi do trzeciej tablicy C wszystkie stringi, które powtarzają się w tablicy A oraz B. Narazie zadeklarowałem dwie tablice, A i B:
I teraz jak to zrobić, żeby porównać te stringi w obu tablicach i wsadzić je do tablic C? Ten post edytował SubZero. 17.10.2008, 18:31:20 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) ![]() ![]() |
sprubuj tak: (ale nie sprawdzałem ;p)
Kod <?php $A = Array('Joe', 'Bob', 'Sarah', 'Bill', 'Suzy'); $B = Array('Joe', 'pos', 'suzy', 'Bob'); $lenghtA = count($A); $lenghtB = count($B); $C = Array(); for ($i=0; $i < $lengthA; ++$i) { for ($j=0; $j < $lengthB; ++$j) { if ($A[$i] == $B[$j]) $C[] = $A[j]; } } print_r($A); echo ("<br>"); print_r($B); echo ("<br>"); print_r($C); ?> wcze śniej musisz zdefiniować zmienną tablicową C... $C = Array(); nie kozystasz z petli while() tylko for() więc bez potrzeby jeszcze wewnątrz zwiekszasz wartości - w ten sposób przeskakujesz co drugi element.... przeanalizuj zagniezdżenie tych pętli, pętla wewnetrzna zostanie wykonana wiele razy po tych samych $B podmieniając tylko raz A petlą zewnętrzną... choć napisałem ++$i to mogło być tak jak bylo $i++.... petla for() zostaje wykonana od $i=0 (czyli juz dla 0 odliczasz pierwszy przebieg), skoro argumentow a $A jest pieć to policz (0;1;2;3;4) - tak więc $i< $lengthA... nie gwarantuję że jest dobże bo nie sprawdzałem ;p EDIT i jak widze jeszcze dokłądniej sprawdził nevt czy juz czasem nie ma elementu $A w tablicy $C: ($A[$i] == $B[$j]) && !in_array($A[$i], $C) Ten post edytował zegarek84 17.10.2008, 20:24:45 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 03:15 |