Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Problem z funkcja array_diff()
byczek1984
post
Post #1





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Witam
Mam tablice
Kod
$tab1 = array ("$row1"); czyli 1 2 3 4 5 6 7 8 9 11
$tab2 = array ("$row2"); czyli 1 4 5 6 7 8 9
$wynik = array_diff ($tab1, $tab2);
echo $wynik;

I pokazuje mi
Kod
Array (     [0] => 1 2 3 4 5 6 7 8 9 11 )

zamiast array( [1]=>2; [2]=>3; [10]=>10;)
Prosze o pomoc.... Pozdro
Go to the top of the page
+Quote Post
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A manual?? http://php.net/array

Efekt jaki chcesz uzyskać to http://php.net/explode
Podstawy...
Go to the top of the page
+Quote Post
byczek1984
post
Post #3





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


tak szukalem w manualu i tam jest wlasnie ta funkcja array_diff() do ktorej wystarczy podac tylko 2 tabele array() i ona pokazuje roznice tych 2 tabel , czyli jakie elementy tabeli 1 nie znajduje sie w tabeli 2 i wyswietla , bez zadnego dzielenia (explode) (IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
wookieb
post
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




1) Nie tabele tylko tablice
2) Naucz się tworzyć tablice
3) Taką tablicę jaka chcesz stworzysz dzieki explode
Go to the top of the page
+Quote Post
byczek1984
post
Post #5





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Tak to czemu w manualu tablice
Kod
$tablica1 = array ("zielony", "czerwony", "niebieski", "czerwony");
$tablica2 = array ("zielony", "żółty", "czerwony");
$wynik = array_diff ($tablica1, $tablica2);

print_r($wynik);

wyswietla array( [2]=>'niebieski')

i tu sie nie uzywalo zadnego 'explode' - u mnie jest taki sam przyklad tylko sa numery, i dlaczego u mnie nie trybi?
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A widzisz róznice w sposobie tworzenia tablicy? Bo ja ogromną. Twoja jest błędna
Go to the top of the page
+Quote Post
byczek1984
post
Post #7





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


czemu bledna?
$row[1] wzielo sie z $row[1]=implode (' ', $number) - number czyli z wyniku zapytania
Go to the top of the page
+Quote Post
wookieb
post
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




To może najpierw wróć do podstaw bo nie mamy o czym rozmawiać. Jak ci tłumacze, że źle robisz tablice to ŹLE ją robisz. Tak trudno to przyjąc do wiadomości?

Wracaj do podstaw i zobacz dział o tablicach a POTEM przeczytaj http://php.net/explode
Go to the top of the page
+Quote Post
seth-kk
post
Post #9





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

Ostrzeżenie: (0%)
-----


explode zwraca gotowa tablice wiec po cholere przypisujesz to do kolejnej tablicy?
Go to the top of the page
+Quote Post
byczek1984
post
Post #10





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


oki to wiec zrobilem tak
Kod
$divide1=explode(' ', $tab1);
$divide2=explode(' ', $tab2);

for($i=0; $i<count($divide1)/2; $i++)
{
    // i tutaj jak moge zastosowac ta funkcje array_diff() (IMG:style_emoticons/default/questionmark.gif)
   echo $divide1[$i];
   echo $divide2[$i];
  //wyswietla mi sie dane z tych 2 tabel ale zeby wyswietlic tylko dane ktore sa w tab1 a nie sa w tab2??
}
Go to the top of the page
+Quote Post
wookieb
post
Post #11





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No i teraz array_diff na tych dwóch tablicach tak jak miałeś wcześniej.
Go to the top of the page
+Quote Post
byczek1984
post
Post #12





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Oki to zrobilem na tych 2 tablicach i nie dziala poprawnie:
Kod
$divide1=explode(' ', $tab1);
$divide2=explode(' ', $tab2);

for($i=0; $i<count($divide1)/2; $i++)
{
    $a=array("$divide1[$i]");
    $b=array("$divide2[$i]");
      $result=array_diff($a, $b);
                    print_r($result);

Array (     [0] => 1 2 3 4 5 6 7 8 9 11 )
}

zamiast wyswietlac roznice 2 tabli to wyswietla tylko tab1. Prosze o wskazowki
Go to the top of the page
+Quote Post
wookieb
post
Post #13





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie wierzę w co widzę...

  1. $divide1=explode(' ', $tab1);
  2. $divide2=explode(' ', $tab2);
  3.  
  4. print_r( array_diff($divide1, $divide2));


Upewnij się tylko czy $divide* są odpowiednimi tablicami

Ten post edytował wookieb 3.11.2009, 23:03:00
Go to the top of the page
+Quote Post
byczek1984
post
Post #14





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Oki dzieki juz trybi, a jeszcze mam pytanie a jak by to mozna bylo zapisac w formularzy
Kod
<form action="...">
    <select name="zmienna">
        <option> //zeby tutaj pokazywalo ta roznice z tych 2 tablic? </option>
    </select>
</form>
Go to the top of the page
+Quote Post
wookieb
post
Post #15





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




http://php.net/foreach
Go to the top of the page
+Quote Post
byczek1984
post
Post #16





Grupa: Zarejestrowani
Postów: 58
Pomógł: 0
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Oki juz mam dzieki wielkie
Go to the top of the page
+Quote Post

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: 23.08.2025 - 02:12