假设我有一个字符串,如下所示:
$string = 'president barack obama';
现在,假设我想把它分解成一个数组,打破单词。你会认为我可以使用explode()
,对吗?那行得通,但是如果我想要一个包含所有可能的从左到右的单词组合的数组呢?像这样:
Array
(
[0] => 'barack'
[1] => 'barack obama'
[2] => 'obama'
[3] => 'president'
[4] => 'president barack'
[5] => 'president barack obama'
)
最有效的方法是什么?
可能的解决方案:
到目前为止,我已经提出了一种可能的解决方案,但我希望你们中的一个能给我一个更好的主意。我想像这样接近这个:
- 正常爆发。
- 循环遍历每个单词。
- 对于每个单词,将其存储在一个数组中。然后,检查数组中是否有另一个单词(在它自己之后)。如果有,添加一个新的数组值,它由
$current_word . ' ' . $new_word;
. 对每个单词都这样做。
现在,这可能会奏效。但是,这似乎很烦人,恐怕其他人可能有更好的方法来做到这一点。大家有什么推荐的?是否有一个我不知道的 PHP 函数可以做到这一点?