Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Porównanie tablic
Forum PHP.pl > Forum > Przedszkole
Gość
cześć, mam problem z porównaniem tablic. taki zapis działa:
  1. $a1 = array(1,2,3);
  2. $a2 = array(1,2,3);
  3. var_dump($a1 == $a2);

wyjście:
Cytat
bool(true)




ale gdy tablica jest generowana dynamicznie (dodatkowo ją sortuję, aby porównać):


  1. sort($skladniki[$a]);
  2. sort($skladniki[$b]);
  3.  
  4. $p = $skladniki[$a] == $skladniki[$b];
  5.  
  6. print_r($skladniki[$a]);
  7. print_r($skladniki[$b]);
  8.  


zwraca
Cytat
Array
(
[0] => 1
[1] => 2
[2] => 3

)
Array
(
[0] => 1
[1] => 2
[2] => 3
)
bool(false)


w czym problem?
Michael2318
W pierwszym przypadku Ty porównujesz w ten sposób:

  1. $nazwa_tablicy_A == $nazwa_tablicy_B


a w drugim:
  1. $nazwa_tablicy_A[$jakis_index_a] == $nazwa_tablicy_B[$jakis_index_b]

gdzie w efekcie porównujesz dwie różne wartości bo w pierwszej tablicy jako index definiujesz co innego i w drugiej tablicy jako index definiujesz co innego wink.gif
najprościej to po prostu wyechuj to co stoi przed '==' i to co stoi po. Będziesz wiedział o co chodzi.
Crozin
Na pierwszy rzut oka wydaje się, że trzeci element z pierwszej tablicy to nie liczba 3, a tekst "3 " (jakiś znak nowej linii po cyfrze).
Gość
dzięki Crozin, przy dodawaniu elementów do tablicy dodałem (int) i poszło. faktycznie, dane wejściowe mają na końcu znak nowej linii tongue.gif
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.