Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] array_diff - po prostu nie działa...
Forum PHP.pl > Forum > Przedszkole
Ciubas
Mam problem z array_diff, w skrócie nie działa.

Mam 2 tablice:

Array ( [0] => po_kat/11_09_2010 [1] => po_kat/06_12_2010 )
Array ( [0] => po_biel/11_06_2010
[1] => po_kat/06_12_2010
[2] => po_kat/11_09_2010
[3] => sp_kat/11_08_2009
)

A wynikiem skryptu jest:

Array ( [0] => po_biel/11_06_2010
[1] => po_kat/06_12_2010
[2] => po_kat/11_09_2010
[3] => sp_kat/11_08_2009
)


A tak to wygląda od strony kodowej:

  1. print_r ($katalogi_baza);
  2. echo '<br>';
  3. print_r ($katalogi_pliki);
  4. echo '<br>';
  5.  
  6. $tab = array_merge(array_diff($katalogi_pliki,$katalogi_baza));
  7.  
  8. print_r($tab);
  9.  


bardzo was proszę o wytłumaczenie mi, czemu to cholerstwo nie działa, bo ja totalnie nie potrafię tego zrozumieć sad.gif

nospor
No przecież dobrze zwrocil... wszystko zgodnie z opisem w manualu
http://pl2.php.net/array_diff
Cytat
array_diff() zwraca tablicę zawierającą wszystkie wartości tablicy tablica1 które nie są obecne w innych tablicach-argumentach. Zauważ, że zachowywane są klucze.

Zauważ, ze ty do array_diff jako pierwszą tablicę przekazaleś tę, którą wczesniej wyswietlasz jako drugą. Moze to ci zmylilo
kalmaceta
no właśnie zwróciło dobrze, tylko kolega jakiś dziwny rezultat zapodał, który faktycznie jest błędny gdyby był.
http://codepad.org/045n0B9T
Ciubas
Czyli teoretycznie mam dobrze, ale rezultat jest zły:/

No dobra a da się jakoś przeformatować tą tablicę, bo może po prostu to jest źle.


Generowane są tak:

  1. for ($i = 0; $i < $irow; $i++)
  2. {
  3. // tu jest milion innych linijek nieistotnego kodu
  4. $katalogi_baza[$i]=$result[$i]->katalog;
  5. };


  1. //nieistotna pętla
  2. {
  3. $katalogi_pliki[$kr] = strstr($path.'/'.$file.'<br>',$zastap);
  4. $kr++;
  5. }
nospor
Kod
Czyli teoretycznie mam dobrze, ale rezultat jest zły:/
Teoretycznie i praktycznie masz dobrze. Skad ci przyszedl do glowy pomysl ze rezultat masz zly?
kalmaceta
nie, to znaczy, że array_diff() działa - a Ty podałeś rezultat dla innych tablic, świadczy to o tym, że dane wejściowe - tablice $katalogi_pliki,$katalogi_baza są inne

@nospor bo rezultat dla danych jakie podał jest inny. zob. link w moim poście wyżej.
nospor
tak,tak, źle spojrzalem.

Ale on przy budowaniu jednej tablicy dodaje '<br>' a przy drugiej nie.Nic dziwnego ze ma kaszanke winksmiley.jpg

@ciubas znajdź 10 roznic miedzy tekstami:
'po_kat/11_09_2010'
'po_kat/11_09_2010<br>'
winksmiley.jpg
Ciubas
No tak pisałem to wczoraj o 1 w nocy i dopiero teraz to zauważyłem, dzięki wielkie - nie ma jak durny błąd;)

Wszystko śmiga jak powinno, bardzo dziękuje za pomoc!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.