我编写了一个简单的函数,用于检查给定字符串是否包含带有stripos()
的预定义子字符串,并返回子字符串的键。实际上我需要键字符串才能在脚本的其他部分使用它。
我想知道是否有更好的方法,因为目前我正在解析整个数组,并在找到匹配时返回结果。因此,如果数组变大,它会变慢。
$needles = array(
'a' => 'ab',
'b' => 'bc',
'c' => 'cd',
'd' => 'de',
'e' => 'ef'
);
echo get_key('cd', $needles) . '<br />';
echo get_key('my_de_string', $needles) . '<br />';
echo get_key('e_ab', $needles) . '<br />';
function get_key($mystring, $needles) {
foreach ($needles as $key => $needle)
{
if ((stripos($mystring, $needle)) !== false)
{
return $key;
}
}
}
很抱歉,如果之前已经提出此类问题。感谢您的信息。
答案 0 :(得分:1)
您没有解析整个数组,只是解析foreach循环的实体。我几乎可以肯定这是最快的方法。
如果你想让它更快,取决于你需要多少次运行它,以及你的阵列有多大,trie structure可能会让它更快。