a pesquisa explodir e in_Array não está funcionando
OK, aqui está o código codepad aquihttp://codepad.org/ZQz0Kn3R
function processContent($content, $min_count = 2, $exclude_list = array()) {
$wordsTmp = explode(' ', str_replace(array('(', ')', '[', ']', '{', '}', "'", '"', ':', ',', '.', '?'), ' ', $content));
$words = array();
$wordsTmp2 = array();
$omit = array('and', 'or', 'but', 'yet', 'for', 'not', 'so', '&', '&', '+', '=', '-', '*', '/', '^', '_', '\\', '|');
if(count($exclude_list)>0){
$omit = array_merge($omit, $exclude_list);
}
foreach ($wordsTmp as $wordTmp) {
if (!empty($wordTmp) && !in_array($wordTmp, $omit) && strlen($wordTmp) >= $min_count) {
$words[] = $wordTmp;
}
}
return $words;
}
OK, esta é a minha função que deve retornar uma matriz de palavras filtrando de$omit
variável. Mas quando eu uso as palavras primeiro$omit
array são filtrados apenas. O segundo é mesclado$exclude_list
não é filtrado.
Eu uso minha função desta maneira:
$filter_array = explode("\n", words list separated by \n new line here);
print_r(processContent('String gere for filtering', $min_word_length, $filter_array));
A variável$filter_array
é passado para a exclude_list também é mesclado para omitir a variável, mas não é filtrado no valor de retorno. somente primeiro$omit
O valor é filtrado. Existe algo errado no código?