Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]porównanie elementów tablicy
Forum PHP.pl > Forum > Przedszkole
shreker
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 ?
peter13135
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"));
shreker
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
peter13135
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ć
b4rt3kk
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?
shreker
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.
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.