68

重複の可能性:
アイテムが「許可されていない単語」配列に存在する場合は、配列からアイテムを削除します

クライアントが送信する動的な文字列があり、そこからカンマ区切りのタグを作成したいと思います。

$subject = "Warmly little in before cousin as sussex and an entire set Blessing it ladyship.";
print_r($tags = explode(" ", strtolower($subject)));

それでも、特定の単語のグループ(定冠詞など)を削除したいのですが、展開された配列にある場合は、その単語のキーと値を削除したいと思います。

$definite_articles = array('the','this','then','there','from','for','to','as','and','or','is','was','be','can','could','would','isn\'t','wasn\'t', 'until','should','give','has','have','are','some','it','in','if','so','of','on','at','an','who','what','when','where','why','we','been','maybe','further');

$definite_article配列内のこれらの単語の1つが配列内にある$tags場合は、その単語のキーと値を削除すると、新しい配列でこれらの単語が削除されます。この配列を使用しarray_randて、ランダムな単語のグループを選択します。私は自分の結果を達成するために多くのことを試みましたが、今のところ何もしていません。誰かが私がこれに対する解決策を見つけるのを手伝ってもらえますか?

4

2 に答える 2

95

あなたが探しているarray_diff

$subject = "Warmly little in before cousin as sussex...";
$tags = explode(" ", strtolower($subject));

$definite_articles = array('the','this','then','there','from','for','to','as');

$tags = array_diff($tags, $definite_articles);
print_r($tags);

実際の動作をご覧ください

于 2012-05-14T19:40:30.347 に答える
47

の簡単な仕事のように聞こえarray_diff()ます。

array array_diff ( array $array1 , array $array2 [, array $... ] )

比較array1array2て差を返します。

これは基本的にarray1、に存在するすべての値が削除された後に返されることを意味しarray2ます。

于 2012-05-14T19:40:37.573 に答える