我只是想知道,这里发生了什么.如果我使用这个:
var_dump(similar_text('abcd', 'abcdefg', $percent)); //output: int 4
Run Code Online (Sandbox Code Playgroud)
多数民众赞成,abcd在适当的地方,所以4是好结果.
让我们改变a并b在第一个变量的开头:
var_dump(similar_text('bacd', 'abcdefg', $percent)); //output: int 3
Run Code Online (Sandbox Code Playgroud)
我excpected到2或4而不是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)
| 归档时间: |
|
| 查看次数: |
135 次 |
| 最近记录: |