Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在比较四个字符的字符串时,有没有简单的方法来检查两个或多个字符是否相等?_Php_String_Comparison_Character_Equals - Fatal编程技术网

Php 在比较四个字符的字符串时,有没有简单的方法来检查两个或多个字符是否相等?

Php 在比较四个字符的字符串时,有没有简单的方法来检查两个或多个字符是否相等?,php,string,comparison,character,equals,Php,String,Comparison,Character,Equals,我必须比较两个字符串,例如INTU和IXTE,并检查两个或多个字符是否相同。对于前面的两个字符串,我希望返回true,因为I和T是相同的 字符串中字母的顺序最终是不相关的,因为每个字符不能出现在字符串中的不同位置。似乎应该有一个简单的方法来做到这一点 您可以使用php的array_intersect()函数 它返回所有交叉点。因此,如果它返回的值大于2,则返回true 但它不接受字符串元素作为输入,所以需要用要比较的字符串的字符填充数组 手册: 查看类似的文本()。下面的代码未经测试,但我认为它

我必须比较两个字符串,例如
INTU
IXTE
,并检查两个或多个字符是否相同。对于前面的两个字符串,我希望返回
true
,因为I和T是相同的


字符串中字母的顺序最终是不相关的,因为每个字符不能出现在字符串中的不同位置。似乎应该有一个简单的方法来做到这一点

您可以使用php的array_intersect()函数 它返回所有交叉点。因此,如果它返回的值大于2,则返回true

但它不接受字符串元素作为输入,所以需要用要比较的字符串的字符填充数组

手册:

查看
类似的文本()。下面的代码未经测试,但我认为它可以按照您的要求工作

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

$is_match = ( similar_text($a , $b) >= 2) ;

这将很好地工作,但是
字符串
不是
数组
s个字符。是否有任何方法可以将其视为与此函数一起使用?只需使用$string[0]即可访问字符串的单个字符,这样就可以循环并获取所有单个字符。如果foreach不起作用,请使用strlen生成正确的循环。忘记提及:顶级解决方案看起来更好,因此只有当您想知道哪些元素与
count(array\u intersect(str\u split($a),stru split($b))>=2)匹配时,这种方法才是您的选择。
是我最后写这篇文章的原因,但现在我知道了上面的内容,这是一个很好的解决方案,尽管我认为
$is\u match=(类似的文本($a,$b)>=0.5)
可能是正确的,因为
similor_text
似乎返回百分比如果只传递第三个参数,它将返回百分比。从手册
中,通过将引用作为第三个参数传递,similor_text()将以百分比为单位计算相似度。它返回两个字符串中匹配的字符数
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;
  }
}