배열에서 단어 (영역) 목록을 검색하려고합니다.일부 PHP 일치 in_array()
그러나 어쩌면 배열의 단어 (영역)는 2 단어입니다. 나는 이것이 될 것입니다 가정으로 배열
즉 ("밀턴 케인즈는"그래서 "밀튼은"배열에있는 두 단어를 분할하지 않고,
내가이 작업을 수행 할 수있는 방법이 있나요
일치하지 않을 것입니다 서버에 큰 부하) 아래내가 어떤 조언을 항상,
foreach (preg_split("/(\s)|(\/)|(\W)/", $words) as $word){
if (in_array($word, $areaArray)){
$AreaID[] = array_search($word, $areaArray);
}
}
감사를 뭐하는 거지의 예입니다! 경기의 경우를 구분하기 위해
$re = sprintf('/\b%s\b/', preg_quote($search, '/'));
// ...
if (preg_grep($re, $areaArray)) {
// we have a match
}
당신은 선택할 수 있습니다 : 당신은
$search='Milton Keynes';
foreach ($areaArray as $key => $value) {
if (preg_match('~'.preg_quote($search).'~i',$value)) {
echo "$key";
}
}
'in_array'는 정확한 일치에서만 작동합니다. 배열을 반복하고 부분 일치를 직접 찾아야합니다. – CBroe
단어 목록을 준비하여 'Milton | Keys | ...'대안을 사용하고 ['preg_grep'] (http://php.net/preg_grep)을 사용하십시오. – mario