-2

あるインタビューで、2 つの文字列がある場合、これら 2 つの文字列から一致する文字列の一部を取得するにはどうすればよいかという質問を受けました。例えば

$str1 = "My name is baig";
$str2 = "Baig is a nice person";

今、出力 「iaes g」と他の一致する文字が必要です

これをPHPで欲しい

前もって感謝します

4

4 に答える 4

1

これは、2 つの文字列 str1 と str2 の期待される結果を取得するコードです。

<?php
  $str1 = strtolower("My name is baig");
  $str2 = strtolower("Baig is a nice person");
  $array1 = explode(' ',$str1);
  $array2 = explode(' ',$str2);
  $result = array_intersect($array2, $array1);

  print_r(implode(' ',$result));
?>
于 2012-06-19T07:36:57.963 に答える
0

別のフォーラムから次の回答を得ました

<?php 
$str1   = "My name is baig";
$str2   = "Baig is a nice person";
$r1     = str_split(preg_replace("/[^a-zA-z]/","",strtolower($str1)));
$r2     = str_split(preg_replace("/[^a-zA-z]/","",strtolower($str2))); 
$match  = array_unique(array_intersect($r1,$r2)); 

$match = implode(" ",$match); 
echo "Matched letters are: ".$match; 
?>

大文字と小文字の区別はまだ問題ですが、私はそれを通過します

于 2012-06-19T07:52:29.713 に答える
0

array_intersect文字列に対して関数を使用した後に使用できexplodeます。
実際の例: http://codepad.org/IikNr2Vv

ただし、これは大文字と小文字Baigが区別され、baig.
これを解決するには、strtolower関数を使用してすべての文字列を小文字に変換します。

于 2012-06-19T07:35:09.097 に答える
0

いくつかのオプションがあります...特定の順序で一致が必要な場合、つまり別の文字列内の文字列を意味する場合は、strstr を使用できます。2 つの文字列間の共通点を見つけたい場合は、最初にパターンを爆発させます。あなたの場合はスペースです。

両方の文字列を公開し、両方の配列を交差させます。

于 2012-06-19T07:31:55.710 に答える