如何使用PHP检查单词是否已更改?

时间:2012-02-23 21:46:59

标签: php database string arrays

如何使用PHP检查单词是否已更改?

例如,假设someword一词改为somEwOrd。如果使用PHP在字符串或数组中,我怎么能检查更改?

3 个答案:

答案 0 :(得分:2)

如果您需要知道哪些字母已更改... 假设您的单词存储在变量中,您可以通过循环中的数组索引访问它,以查看哪些字符已更改。

$word = "someword";
$changedword = "someWoRd";

// array of changed letters by index
$changedletters = array();
for ($i=0; $i<strlen($word); $i++) {
  if ($changedword[$i] !== $word[$i]) {
    $changedletters[$i] = $word[$i];
  }
}

var_dump($changedletters);
array(2) {
  [4]=>
  string(1) "w"
  [6]=>
  string(1) "r"
}

或跟踪“从w到W”等变化

for ($i=0; $i<strlen($word); $i++) {
  if ($changedword[$i] !== $word[$i]) {
    $changedletters[$i] = array("from"=>$word[$i], "to"=>$changedword[$i]);
  }
}

array(2) {
  [4]=>
  array(2) {
    ["from"]=>
    string(1) "w"
    ["to"]=>
    string(1) "W"
  }
  [6]=>
  array(2) {
    ["from"]=>
    string(1) "r"
    ["to"]=>
    string(1) "R"
  }
}

答案 1 :(得分:1)

只需使用strtolower(),然后检查strtolower($string1) == strtolower($string2)

strcasecmp,请检查strcasecmp($string1,$string2) == 0

答案 2 :(得分:0)

您可能希望将字符串相互比较两次:

  1. 将字符串与不区分大小写进行比较,以确定它们是否代表相同的字符串而不管大小写(使用例如strcasecmp
  2. 如果#1为真,则将字符串与区分大小写进行比较(使用例如strcmp)。
  3. 如果#1为真且#2为假,那么您知道您正在处理相同的字符串但不同的字母案例。