首页 > 解决方案 > 如何从文本文件story.txt中打印最长和最短的单词并在php中找到每个单词的频率?

问题描述

$string = file_get_contents('./story.txt', true); 

$words  = explode('\n', $string);
$w = array();

foreach ($words as $word) {
$temp = explode(' ', $word);
$w = array_merge($w, $temp);

}

$longestWordLength = 0;
$longestWord = '';

foreach ($w as $word) {
   if (strlen($word) > $longestWordLength) {
      $longestWordLength = strlen($word);
      $longestWord = $word;
   }
}

echo $longestWord;
echo strlen($longestWord);

我已经编写了这段代码,但它扫描一个段落的结尾词和下一段的第一个词相同。在以下段落中:

沿着溪流的艺术看起来几乎就像阳光的闪光。

沙漠动物一般都是沙漠的颜色。

在这,

阳光。沙漠

被视为一个词。

标签: phpregexstringparsingtext

解决方案


您可以尝试这种方式从文件文本中获取最长的字符串,我已经从数组中删除了多余的空格和点字符array_map()

function longest_string_in_array($array) {
    $array = array_map(function($item) { return trim($item, '. ');},$array);
    $mapping = array_combine($array, array_map('strlen', $array));
    return $mapping;
}

$string = file_get_contents('./story.txt', true);
$array = preg_split('/[\s]+/', $string );
print_r(longest_string_in_array($array));

推荐阅读