私はテキストの本文からすべてのユニークな単語全体を見つけようとしています。現在これは私が使用しているものですが、機能していないようです:
$textDump = "cat dog monkey cat snake horse"
$wholeWord = "/[\w]*/";
$uniqueWords = (preg_match($wholeWord, $textDump, $matches));
どんな助けでもいただければ幸いです。ありがとう!
array_unique(
str_word_count($textDump,1)
);
str_word_count を使用できます
$textDump = "cat dog monkey cat snake horse";
$uniqueWords = (str_word_count($textDump, 1);
これまでの回答はすべて、「一意の単語全体をすべて見つける」とは、本当に「重複を削除する」ことを意味していると想定しています。実際には、例で目的の出力が何であるかを指定していないため、質問はあまり明確ではありませんが、あなたの言葉であなたを連れて行き、「すべての一意の単語全体を見つける」ための解決策を提供します。
これは、入力に対して次のことを意味します。
"cat dog monkey cat snake horse"
次の出力が得られます。
"dog monkey snake horse"
実際には、実際にさまざまな値をカウントstr_word_count
すると一緒に、これにも役立ちます。array_count_values
$wordCount = array_count_values(str_word_count($textDump,1));
$wordCount
今でしょ:
array(5) {
["cat"] => int(2)
["dog"] => int(1)
["monkey"] => int(1)
["snake"] => int(1)
["horse"] => int(1)
}
次に、単語数が 1 より大きい単語を削除します (実際の単語は配列キーであるため、これらを取得するために次のように使用array_keys
することに注意してください。
$uniqueWords = array_keys(
array_filter(
$wordCount,
function($count) {
return $count === 1;
}
)
);
$uniqueWords
今でしょ:
array(4) {
[0] => string(3) "dog"
[1] => string(6) "monkey"
[2] => string(5) "snake"
[3] => string(5) "horse"
}
完全なコード:
$textDump = "cat dog monkey cat snake horse";
$wordCount = array_count_values(str_word_count($textDump,1));
$uniqueWords = array_keys(
array_filter(
$wordCount,
function($count) {
return $count === 1;
}
)
);
echo join(' ', $uniqueWords);
//dog monkey snake horse
explode();
この場合、 andを使用してこれを達成してみませんarray_unique();
か?
$text = "cat dog monkey cat snake horse";
$foo = explode(" ", $text);
print_r(array_unique($foo));