Любой простой способ проверить, равны ли два или более символов при сравнении строки из четырех символов? - PullRequest
3 голосов
/ 27 апреля 2011

Мне нужно сравнить две строки, такие как INTU и IXTE, и проверить, совпадают ли два или более символов. С предыдущими двумя строками я бы хотел вернуть true, поскольку I и T одинаковы.

Порядок букв в строке в конечном итоге не имеет значения, поскольку каждый символ не может появляться в разных позициях в строке. Кажется, должен быть простой способ сделать это.

Ответы [ 3 ]

8 голосов
/ 27 апреля 2011

посмотрите на similar_text().Следующий код не проверен, но я думаю, что он будет работать, как вы хотите.

$a = "INTU";
$b = "IXTE";

$is_match = ( similar_text($a , $b) >= 2) ;
1 голос
/ 27 апреля 2011

Вы можете использовать функцию array_intersect () в php Возвращает все пересечения. Так что если он вернет больше 2, вы вернете true.

Но он не принимает строковые элементы в качестве входных данных, поэтому вам нужно заполнить массив символами строки, которую вы хотите сравнить.

Руководство: http://php.net/manual/de/function.array-intersect.php

0 голосов
/ 27 апреля 2011
function compare_strings($str1, $str2)
{
  $count=0;
  $compare[] = substr($str1, 0, 1);
  $compare[] = substr($str1, 1, 1);
  $compare[] = substr($str1, 2, 1);
  $compare[] = substr($str1, 3, 1);

  foreach($compare as $string)
  {
    if(strstr($str2, $string)) { $count++; }
  } 

  if($count>1) 
  {
    return TRUE;
  }else{
    return FALSE;
  }
}
...