Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]porównanie elementów tablicy
shreker
post 19.06.2013, 16:15:33
Post #1





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

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


witam, mam problem z tablicami, na razie doszedłem do tego:

  1. $string = 'string';
  2.  
  3. $tablica1 = str_split($string);
  4. $tablica2 = array ('s', '#', '#', 'i', '#', 'g');
  5.  
  6. foreach($tablica2 as $klucz2 => $wartosc2)
  7. {
  8. if ($wartosc2 != '#')
  9. {
  10.  
  11. }
  12. else
  13. {
  14.  
  15. }
  16. }


Chodzi mi o porównanie elementów 2 tablic. Jezeli w tablicy 2 jest "#" to te elementy z obu tablic mają być niesprawdzane. Mają być natomiast porównane pozostałe elementy.
Na razie puściłem w pętli tablicę, i doszedłem do tego co wyzej, ale co dalej ?
Go to the top of the page
+Quote Post
peter13135
post 19.06.2013, 16:52:02
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


Znaczy się, chodzi Ci o taki mechanizm "rozwiązywania krzyżówki", że masz kilka liter odgadniętych a kilka nie i chcesz sprawdzić czy jakieś słowo pasuje "w kratki". I dla "wzoru" s##i#g chcesz, żeby pasowały słowa : spring, string itp. Dobrze rozumiem ?


edit://
  1. <?php
  2. function isMatching($pattern,$word)
  3. {
  4. $length = strlen($pattern);
  5. if( $length != strlen($word)){
  6. return false;
  7. }
  8.  
  9. for($i=0; $i<$length; $i++)
  10. {
  11. if($pattern[$i]=='#'){
  12. continue;
  13. }
  14. if($word[$i] != $pattern[$i]){
  15. return false;
  16. }
  17. }
  18. return true;
  19. }
  20. var_dump(isMatching("d#pa", "dopa"));


Ten post edytował peter13135 19.06.2013, 17:00:52


--------------------
:)
Go to the top of the page
+Quote Post
shreker
post 19.06.2013, 17:02:19
Post #3





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

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


nie do kończa peter13135

chodzi o to z grubsza o to :

array1 | array2 | porównanie

s | s | porównanie czy są identyczne
t | # | pomija bez sprawdzenia
r | # | pomija bez sprawdzenia
i | i | porównanie czy są identyczne
n | # | pomija bez sprawdzenia
g | g | porównanie czy są identyczne
Go to the top of the page
+Quote Post
peter13135
post 19.06.2013, 17:05:25
Post #4





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


No to przecież to pasuje do mojego opisu wink.gif

jak chcesz zamiast stringów dawać tablice, to sobie zamień strlen z count i powinno działać


--------------------
:)
Go to the top of the page
+Quote Post
b4rt3kk
post 19.06.2013, 17:12:45
Post #5





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(shreker @ 19.06.2013, 18:02:19 ) *
nie do kończa peter13135

chodzi o to z grubsza o to :

array1 | array2 | porównanie

s | s | porównanie czy są identyczne
t | # | pomija bez sprawdzenia
r | # | pomija bez sprawdzenia
i | i | porównanie czy są identyczne
n | # | pomija bez sprawdzenia
g | g | porównanie czy są identyczne


A zwykłe array_diff nie wystarczy?


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
shreker
post 19.06.2013, 17:14:05
Post #6





Grupa: Zarejestrowani
Postów: 270
Pomógł: 0
Dołączył: 21.05.2008

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


dokładnie o to chodziło peter13135. po prostu miałem błąd w czym innym (w innej pętli), i nie zadziałało. dzięki :-)
niestety b4rt3kk array_diff nie wystarczy, bo całość jest nieco bardziej skomplikowana.

Ten post edytował shreker 19.06.2013, 17:16:02
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: 23.06.2024 - 07:17