similar_text没有给出预期的结果

vas*_*123 5 php

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

var_dump(similar_text('abcd', 'abcdefg', $percent)); //output: int 4
Run Code Online (Sandbox Code Playgroud)

多数民众赞成,abcd在适当的地方,所以4是好结果.

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

var_dump(similar_text('bacd', 'abcdefg', $percent)); //output: int 3
Run Code Online (Sandbox Code Playgroud)

我excpected到24而不是3.有人可以向我解释它为什么会这样吗?

Shi*_*jin 3

simple_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
Run Code Online (Sandbox Code Playgroud)

第二个例子的迭代

  '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
Run Code Online (Sandbox Code Playgroud)