Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Porównanie tablic
-Gość-
post 12.04.2013, 17:39:10
Post #1





Goście







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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Michael2318
post 12.04.2013, 17:51:37
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


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.
Go to the top of the page
+Quote Post
Crozin
post 12.04.2013, 17:52:06
Post #3





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


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).

Ten post edytował Crozin 12.04.2013, 17:52:55
Go to the top of the page
+Quote Post
-Gość-
post 13.04.2013, 12:40:45
Post #4





Goście







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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:25