PHP中比较两个字符串找出第一个不同字符位置例子

要比较两个字符串在哪里出现第一个不同字符,可以使用PHP预定义函数 strcmp() 。

要比较两个字符串在哪里出现第一个不同字符,可以使用PHP预定义函数 strcmp()

strcmp() 函数用于比较两个字符串,字符串可以是变量或者常量,返回值不同表示找到的第一个不同字符的位置也不同。如果相等,则返回 0。

下面是一个使用 strcmp() 比较两个字符串并查找第一个不同字符位置的例子:

$str1 = "Hello World!";
$str2 = "Hello, world!";
$diff_pos = -1;
for ($i = 0; $i < strlen($str1) && $i < strlen($str2); $i++) {
  if (strcmp($str1[$i], $str2[$i]) !== 0) {
    $diff_pos = $i;
    break;
  }
}

if ($diff_pos === -1) {
  echo "The two strings are identical";
} else {
  echo "The first different character is at position {$diff_pos}: '{$str1[$diff_pos]}' vs '{$str2[$diff_pos]}'";
}

以上代码使用一个 for 循环比较两个字符串中的字符,直到找到第一个不同的字符。如果没有不同的字符,则这两个字符串是相等的。如果找到了不同的字符,则将其位置存储在 $diff_pos 变量中,并使用单引号包裹将其输出。

下面是另一个例子:

$str1 = "abc";
$str2 = "abz";
$diff_pos = strcmp($str1, $str2);
if (strpos($diff_pos, 0) === false) {
  echo "The two strings are identical";
} else {
  echo "The first different character is at position {$diff_pos}: '{$str1[$diff_pos]}' vs '{$str2[$diff_pos]}'";
}

以上代码使用 strcmp() 函数直接比较两个字符串,并将比较结果存储在 $diff_pos 变量中。因为 strpos() 函数在位置 0 处也返回 false,所以需要在比较前检查一下 $diff_pos 变量。如果 $diff_pos 不等于 0,则将其与其它字符串一起输出。

以上是关于使用 strcmp() 函数来比较两个字符串找出第一个不同字符位置的攻略。

本文标题为:PHP中比较两个字符串找出第一个不同字符位置例子

基础教程推荐