我需要检查$string1
是否像$string2
,但我不希望一个文本与另一个文本不同,如果它以相同的字符串开始。例如,我想输入
if (admin.example2 == admin.example1)
应该返回true!最好的方法是什么?
我的确切要求。一个if条件用于检查数组中是否存在以admin开头的字符串。
if ($client_name like 'admin') {
...
...
}
数组中的条目数量是无限的。我只是想检查是否存在以"admin"开头的字符串
似乎你正在寻找similar_text
在PHP
<?php
similar_text("admin.example2", "admin.example1", $simpercentage);
if($simpercentage>90)
{
echo "Both strings are like ".round($simpercentage)."% similar.";
}
OUTPUT :
Both strings are like 93% similar.
设置一个百分比(在上面的例子中,我设置了90%的相似度),你可以根据自己的需要进行调整。如果两个字符串都是admin.example2
和admin.example2
(如果两个字符串相同),代码将返回100%
匹配
由于问题被大幅编辑…
<?php
$arr=['admin1','administrator','admin2','I am an admin','adm','ADMIN'];
array_map(function ($v){ if(stripos(substr($v,0,5),'admin')!==false){ echo "$v starts with the text admin<br>";}},$arr);
OUTPUT :
admin1 starts with the text admin
administrator starts with the text admin
admin2 starts with the text admin
ADMIN starts with the text admin
根据您新的指定要求,如果字符串以'admin'开头,可以这样检查:
$your_string = 'admin.test';
if(strcmp(substr($your_string, 0, 5), "admin") == 0)
{
echo 'begins with admin';
} else {
echo 'does not begin with admin';
}
编辑:如果您有一个字符串数组,例如$array = array("admin.test", "test", "adminHello", "hello")
,您可以编写一个函数来检查该数组是否包含至少一个以admin开头的字符串:
function checkArrayStartsWithAdmin($array)
{
$result = false;
foreach($array as $key => $value)
{
if(strcmp(substr($value, 0, 5), "admin") == 0)
{
$result = true;
break;
}
}
return $result;
}
您可能需要了解一下levenshtein距离的概念。
你可以使用这个php函数。
http://www.php.net/manual/es/function.levenshtein.php