我有两个字符串开头相同,但在某些时候是不同的。我想找到两个字符串共有多少个字符。
似乎strpos
与此相反;它假设一个字符串完全在另一个字符串中找到,但不一定在起始偏移量处。
我看到很多问题要求在开始时找不到共同的子串,或者当有两个以上的字符串时,这看起来很复杂。我只有两个字符串,它们有一个共同的前缀。有一个PHP函数来获取这两个字符串不同的索引吗?
答案 0 :(得分:0)
您可以通过逐个字符比较来尝试使用for循环。像这样的东西
$str1 = 'MyStringFirst';
$str2 = 'MyStringSecond';
$match_from_left = '';
$count = 0;
$limit = strlen($str1) > strlen($str2) ? strlen($str2) : strlen($str1);
for($i = 0; $i < $limit; $i++){
if($str1[$i] != $str2[$i]){
break;
}
$count++;
$match_from_left .= $str1[$i];
}
echo 'Count: ' . $count . '<br />';
echo 'Match: ' . $match_from_left . '<br />';
答案 1 :(得分:-1)
此处回答类似问题: Find first character that is different between two strings
您可以使用内置的PHP函数similar_text(),但是如下所述,这不会获得索引,只会计算相同字符数。