-2

我曾经在一次采访中被问到一个问题,如果我们有 2 个字符串,我们如何从这两个字符串中获取匹配字符串的一部分?例如

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

现在我想要输出 “iaes g”和其他匹配的字母

我想要这个在 PHP

提前致谢

4

4 回答 4

1

这是获取两个字符串 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

那么你有几个选择......如果你想要以特定顺序匹配,意思是另一个字符串中的一个字符串,你可能会去 strstr,如果你想找到两个字符串之间的任何共同点,你可能想先找到一个爆炸模式,在你的情况下是一个空间。

公开两个字符串并与两个数组相交。

于 2012-06-19T07:31:55.710 回答
0

您可以在字符串上array_intersect使用该函数后使用。 一个工作示例: http ://codepad.org/IikNr2Vv 但这是区分大小写的,会有所不同。 要解决此问题,您可以使用该函数将所有字符串转换为小写。explode


Baigbaig
strtolower

于 2012-06-19T07:35:09.097 回答