4

$keywordsから$badwordsの要素を削除する簡単な方法が必要です。

私が持っているもの(例として)

$keywords = array('sebastian','nous','helene','lol'); //it could be anything in fact
$badwords = array('nous', 'lol', 'ene', 'seba'); //array full of stop words that I won't write here
$filtered_keywords = array_filter(preg_replace($badwords,'',$keywords), 'strlen');
print_r($filtered_keywords);

私が期待したこと

Array ( [0] => samaha [1] => helene ) 

私が得たもの

 Sweet nothing :)

使用しようとしましstr_ireplaceたが、配列内の文字列内で置き換えられていたため、うまくいきませんでした。

4

5 に答える 5

3
$keywords = array('sebastian','nous','helene','lol');

$badwords = array('nous', 'lol', 'ene', 'seba'); 

$filtered_keywords=array_diff($keywords,$badwords);
于 2012-12-26T07:39:25.667 に答える
2

使用するarray_diff

var_dump(array_diff($keywords, $badwords));
array(2) {
  [0]=>
  string(9) "sebastian"
  [2]=>
  string(6) "helene"
}
于 2012-12-26T07:39:02.093 に答える
1

おそらく間違った配列名

$filtered_keywords = array_filter(preg_replace($excluded_words,'',$keywords), 'strlen');

$excluded_wordsではなく、$badwordsです

于 2012-12-26T07:36:52.280 に答える
1

後にセミコロンがありません

$keywords = array('sebastian','nous','helene','lol')

そして、次を使用できますarray_diff

$filtered_keywords = array_diff($keywords, $badwords);
于 2012-12-26T07:38:52.453 に答える
0

/$badwordsのスラッシュが抜けています。;そして、最初の行の最後のセミコロンを逃しました。このコードを試してください:

<?php

$keywords = array('sebastian','nous','helene','lol'); //it could be anything in fact
$badwords = array('/nous/', '/lol/', '/ene/', '/seba/'); //array full of stop words that I won't write here

$filtered_keywords = array_filter(preg_replace($badwords,'',$keywords), 'strlen');

echo print_r($filtered_keywords);

?>
于 2012-12-26T07:41:30.460 に答える