我正在尝试在数组中搜索单词(区域)列表。
但有时候数组中的单词(区域)是2个单词。
,即在阵列中是“米尔顿凯恩斯”,所以“弥尔顿”不匹配
有没有办法可以做到这一点,没有拆分数组中的任何双字(因为我认为这将是服务器上的一个很大的负载)
下面是我正在做的一个例子
foreach (preg_split("/(\s)|(\/)|(\W)/", $words) as $word){
if (in_array($word, $areaArray)){
$AreaID[] = array_search($word, $areaArray);
}
}
感激,一如既往的建议!
答案 0 :(得分:0)
您可以使用正则表达式来查找值,这类似于MySQL的函数
$search='Milton Keynes';
foreach ($areaArray as $key => $value) {
if (preg_match('~'.preg_quote($search).'~i',$value)) {
echo "$key";
}
}
答案 1 :(得分:0)
您可以使用preg_grep()
:
$re = sprintf('/\b%s\b/', preg_quote($search, '/'));
// ...
if (preg_grep($re, $areaArray)) {
// we have a match
}
您可以选择通过添加/i
修饰符来使匹配大小写不敏感。