Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Porównywanie tablic
bolus150
post 26.09.2016, 13:44:51
Post #1





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Witam, zmagam się już któryś dzień z porównywaniem tablic. Byłby ktoś tak wspaniały i powiedział w którą stronę mam zmierzać?
Otóż mam takie 2 tabele
  1. (
  2. [0] => 48
  3. [1] => 47
  4. [2] => 46
  5. [3] => 44
  6. [4] => 43
  7. [5] => 42
  8. [6] => 39
  9. [7] => 38
  10. [8] => 37
  11. [9] => 36
  12. [10] => 35
  13. [11] => 34
  14. [12] => 33
  15. )
  16. (
  17. [0] => 2
  18.  
  19. [1] => 48
  20.  
  21. [2] => 47
  22.  
  23. [3] => 46
  24.  
  25. [4] => 44
  26.  
  27. [5] => 43
  28.  
  29. [6] => 38
  30.  
  31. [7] => 39
  32.  
  33. [8] => 42
  34.  
  35. [9] => 37
  36.  
  37. [10] => 36
  38.  
  39. [11] => 35
  40.  
  41. [12] => 34
  42.  
  43. [13] => 33
  44.  
  45. [14] => 32
  46.  
  47. )


Główna zasada tego będzie polegała na tym, że jeżeli znajdzie np, 33 w obu tablicach to nic nie robi, jak np nie znajdzie to wypisuje to. Ktoś jakiś pomysł?
Go to the top of the page
+Quote Post
trueblue
post 26.09.2016, 13:48:06
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


array_diff a potem badanie wyniku.
Ewentualnie in_array dla każdej tablicy.


--------------------
Go to the top of the page
+Quote Post
nospor
post 26.09.2016, 13:48:15
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. if (!in_array(33, $ar1) || !in_array(33, $ar2)) {
  2. echo 'Blabla';
  3. }


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bolus150
post 26.09.2016, 14:41:08
Post #4





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


A dałoby radę w jakiś bezbolesny sposób zrobić z takiej tablicy na taka $array1 = array(48, 47, 25, 44, 43, 42, 39, 38, 37, 36, 35, 34, 24); ?
Go to the top of the page
+Quote Post
nospor
post 26.09.2016, 14:44:29
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zacznij prosze uzywac troszke manuala
http://php.net/manual/en/function.array-intersect.php


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bolus150
post 26.09.2016, 14:51:22
Post #6





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Chodziło czy da radę przekonwertować z:

  1. (
  2. [0] => 2
  3. [1] => 48
  4. [2] => 47
  5. [3] => 46
  6. [4] => 44
  7. [5] => 43
  8. [6] => 38
  9. [7] => 39
  10. [8] => 42
  11. [9] => 37
  12. [10] => 36
  13. [11] => 35
  14. [12] => 34
  15. [13] => 33
  16. [14] => 32
  17. )


na:
  1. array(2, 48, 47, 46, 44, 43, 38, 39, 42, 37, 36, 35, 34, 33, 24);
Go to the top of the page
+Quote Post
kapslokk
post 26.09.2016, 14:53:32
Post #7





Grupa: Zarejestrowani
Postów: 965
Pomógł: 285
Dołączył: 19.06.2015
Skąd: Warszawa

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


A skąd Ci sie to 24 wzięło?

Edit: @nospor - też tak napisałem na początku, ale 24 na końcu jest biggrin.gif

Ten post edytował kapslokk 26.09.2016, 14:54:25
Go to the top of the page
+Quote Post
nospor
post 26.09.2016, 14:53:33
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez to to samo...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bolus150
post 26.09.2016, 15:29:24
Post #9





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


W takim razie coś jest nie tak, bo jak podaje do array_diff() drugim sposobem to wszystko pięknie działa. Jak pierwszy to wywala błąd Illegal offset type
Go to the top of the page
+Quote Post
nospor
post 26.09.2016, 15:40:40
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A moze pokaz nam kod, jeden ktory dziala i jeden ktory nie dziala


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
bolus150
post 26.09.2016, 16:02:06
Post #11





Grupa: Zarejestrowani
Postów: 150
Pomógł: 0
Dołączył: 14.06.2008

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


Tak mam i nie działa:
Błąd: Warning: Illegal offset type on line 206 - błąd dla każdego indexu
  1. $array1 = array
  2. (
  3. [1] => 48,
  4. [2] => 47,
  5. [3] => 25,
  6. [4] => 44,
  7. [5] => 43,
  8. [6] => 42,
  9. [7] => 39,
  10. [8] => 38,
  11. [9] => 37,
  12. [10] => 36
  13. );
  14. $array2 = array
  15. (
  16. [0] => 48,
  17. [1] => 47,
  18. [2] => 46,
  19. [3] => 44,
  20. [4] => 43,
  21. [5] => 42,
  22. [6] => 39,
  23. [7] => 38,
  24. [8] => 37,
  25. [9] => 3,
  26. [10] => 35,
  27. [11] => 34,
  28. [12] => 33
  29. );
  30. print_r(array_diff($array1, $array2));
  31.  


a jak tak podaje

  1. $array1 = array(48, 47, 44, 43, 42, 39, 38, 37, 36);
  2. $array2 = array(48, 47, 46, 44, 43, 42, 39, 38, 37, 3, 35, 34, 33);
  3.  
  4. print_r( array_diff($array1, $array2));


to wyświetla mi dobrze bo w array1 jest tylko 36 inne
Go to the top of the page
+Quote Post
nospor
post 26.09.2016, 16:04:45
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie
array
(
[1] => 48,

a
array(
1 => 48,


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 - 02:03