【问题标题】:split sentence with variable number of words (separated by blank spaces) into words and then build sentence with & as delimiter将具有可变数量单词(由空格分隔)的句子拆分为单词,然后以 & 作为分隔符构建句子
【发布时间】:2014-10-28 03:05:32
【问题描述】:

例如,在一种情况下,句子可以有 2 个单词,而在另一种情况下,句子可以有 5 个单词。我认为我可以使用explode 来获取每种情况下的每个单词(例如here),问题是每个句子中的单词数量不同。在最初的问题之后,我需要类似于句子,但使用 & 而不是空格,例如,

input:   this is a sentence
output:  this & is & a & sentence

我是php新手,如果这个问题很简单,请多多包涵。

提前感谢您的任何提示!

【问题讨论】:

  • $result = implode(' & ', str_word_count($original,2));
  • @MarkBaker 感谢这个漂亮的 line 命令。关于它的一个问题,我知道在 awk 中我可以使用 awk '{ if ( x < 2) print $0 }' file 来使用简单的 if 调用。是否可以在您的命令中执行类似的操作?问题是如果它只有一个单词,我想留下这个句子,如果它有 2 个或更多单词,我想应用你的行命令,感谢您的任何进一步建议。
  • 不测试字数作为干净单行的一部分;但是如果句子中只有一个单词,那么最终结果中将只有一个单词,没有任何&符号
  • @MarkBaker 刚刚测试了它,你是对的,它给出了相同的输入,很酷的答案,谢谢。

标签: php


【解决方案1】:

使用explode -

$sentence = "this is a sentence";
$words = explode(' ', $sentence);
print_r($words);

然后implode -

$updated = implode(" & ", $words);
echo $updated;

这种方法不关心句子中有多少单词,所以它可以与任何句子一起使用。

【讨论】:

    【解决方案2】:

    使用explode 以空格分隔单词。然后使用implode 将它们与单词之间的 & 重新组合在一起。

    $string = 'this is a sentence';
    $words = explode(' ', $string);
    $newstring = implode(' & ', $words);
    var_dump($newstring);
    

    或者您可以使用str_replace 将所有空格替换为&。

    $string = 'this is a sentence';
    $newstring = str_replace(' ', ' & ', $string);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 2021-09-07
      相关资源
      最近更新 更多