similar_text没有给出预期的结果

时间:2016-05-31 11:16:55

标签: php

我只是想知道,这里发生了什么。如果我使用这个:

var_dump(similar_text('abcd', 'abcdefg', $percent)); //output: int 4

好的,abcd在适当的地方,所以4是好结果。

让我们在第一个变量的开头改变ab

var_dump(similar_text('bacd', 'abcdefg', $percent)); //output: int 3

我曾24而非3。有人可以向我解释它为什么会这样吗?

1 个答案:

答案 0 :(得分:3)

similar_text()使用一种算法,该算法获取第二个字符串包含的第一个字符串中的第一个字母,对其进行计数,然后从第二个字符串中删除之前的字符。 这就是我们得到不同结果的原因。

第一个例子的迭代

  'abcd' vs 'abcdefg' - (1) // 'a' match with 'a' 
  'bcd'  vs 'bcdefg'  - (1) // 'b' match with 'b' 
  'cd'   vs 'cdefg'   - (1) // 'c' match with 'c'
  'd'    vs 'defg'    - (1) // 'd' match with 'd'
  ''     vs 'efg'     - (0) // no match
  Result = 4

第二个例子的迭代

  'bacd' vs 'abcdefg'  - (0) // b not match a
  'bacd' vs 'bcdefg'   - (1) // b match b
  'acd'  vs 'cdefg'    - (0) // a not match c
  'cd'   vs 'cdefg'    - (1) // c match c
  'd'    vs 'defg'     - (1) // d match d
  ''     vs 'efg'      - (0) // not match with any elemennt
  Result = 3