【问题标题】:string processing-getting 20 words from a string字符串处理——从一个字符串中获取20个单词
【发布时间】:2012-08-21 08:48:51
【问题描述】:

我想知道从英语句子中获取前 20 个单词的好方法。在进一步处理之前,我需要分析它的主语和动词。因为有些句子没用所以我不需要分析它们,而是转储它们:-D

好的,初学者先开始总是更好(pss有一句谚语或说法很符合我在英语中的要求 - 我是一个非常活跃的英语学习者;-D)

给你:

$array=explode($string," ");
$con=$array[0];
$i=0;
foreach($array as $v)
{
  if($i++ == 20){break;}
  $con.=" ".$v[i];
}

哦,yezzz,任何人都可以帮助提供更简洁的功能或方法吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    array_slice() 将为您分割数组。只需指定开始和结束元素:

    $words = explode($string, ' ');
    $firstTwenty = array_slice($words, 0, 20);
    

    如果您想变得非常紧凑(但可读性稍差),请改为这样做:

    $twentyWords= array_slice(explode($string, ' '), 0, 20);
    

    $twentyWords 将是一个数组。如果你想将它连接回一个字符串,只需使用implode()

    $newString = implode(' ', $twentyWords);
    

    【讨论】:

    • +1 很好的解释;请注意$twentyWords 将是一个数组,如果您正在寻找一个字符串,您可能需要implode()
    【解决方案2】:

    你可以使用众所周知的php函数substr这里是用法...

    string substr ( string $string , int $start [, int $length ] )
    

    【讨论】:

      【解决方案3】:

      你可以试试这个功能...

      $first_twenty_words = wordlimit($string, 20);
      
      function wordlimit($string, $length = 20) 
      { 
         $words = explode(' ', $string); 
         if (count($words) > $length) 
             return implode(' ', array_slice($words, 0, $length)); 
         else 
             return $string; 
      } 
      

      【讨论】:

        【解决方案4】:

        这将使用空格作为单词边界来拆分单词并返回前 20 个:

        implode(' ', array_slice(explode(' ', $sentence), 0, 20));
        

        在某些情况下,单词边界可能不是空格;你也可以看看preg_match\b

        信用:How to select first 10 words of a sentence?

        【讨论】:

          【解决方案5】:

          通过这种方式可以得到任意字符串的前20个单词:

              $str = "this is a string and i want to slice string after 20 words.
          this is a string and i want to slice string after 20 words";
          
              $strArray = explode(" ",$str);
              $strArray = array_slice($strArray,0 , 20);
              $string =  implode(" ",$strArray);
              echo $string;
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-09-04
            • 2015-05-08
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-10
            相关资源
            最近更新 更多