如果你能得到所有的字符串作为一个数组和循环他们在一个foreach()
这样的:
$string_array = array('string', 'string1', 'string2', 'does-not-match');
$needle = 'string';
$results = array();
foreach($string_array as $key => $val):
if (fnmatch($needle, $val):
$results[] = $val;
endif;
endforeach;
你应该结束其匹配$needle
这些条目结束。作为替代你可以使用preg_match()
和模式/string/i
$string_array = array('string', 'string1', 'string2', 'does-not-match');
$needle = '/string/i';
$results = array();
foreach($string_array as $key => $val):
if (!empty(preg_match($needle, $val)):
$results[] = $val;
endif;
endforeach;
注有使用空时(可能是问题),并通过)的preg_match的结果(:
此前PHP 5.5 ,empty()只支持变量;其他任何东西都会导致解析错误。换句话说,以下内容不起作用:空(trim($ name))。相反,使用trim($ name)== false。
没有错误应与PHP版本5.3.x < 5.4
不应该把“最相似的”改为“弗兰克的每周交易报告”和“交易报告123”? – MightyPork
粗略的方法是使用'levenshtein()'来确定两个字符串之间的距离。 – Nadh