Как проверить, изменилась ли буква в слове с помощью PHP? - PullRequest
1 голос
/ 24 февраля 2012

Как проверить, изменилась ли буква в слове с помощью PHP?

Например, скажем, слово someword изменилось на somEwOrd.Как я могу проверить изменения, если они в строке или массиве с использованием PHP?

Ответы [ 3 ]

2 голосов
/ 24 февраля 2012

Если вам нужно знать , какие буквы были изменены ... Предполагая, что ваше слово хранится в переменной, вы можете получить к нему доступ через индексы массива в цикле, чтобы увидеть, какие символы изменились.

$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 голос
/ 24 февраля 2012

Просто используйте strtolower() и проверьте, если strtolower($string1) == strtolower($string2).

или strcasecmp, проверьте, если strcasecmp($string1,$string2) == 0.

0 голосов
/ 24 февраля 2012

Возможно, вы захотите сравнить строки друг с другом дважды:

  1. Сравнить строку с нечувствительностью к регистру, чтобы определить, представляют ли они одну и ту же строку независимо от регистра (например, strcasecmp)
  2. Если # 1 истинно, сравнить строки с чувствительностью к регистру (например, с помощью strcmp).

Если # 1 истинно, а № 2 ложно, то вы знаете, что имеете дело с той же строкой, но с разностными буквами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...