如何在PHP中从字符串中获取n个单词的组合

如何在PHP中从字符串中获取n个单词的组合,php,Php,所以我要做的是从一个字符串中找出字符串中唯一存在的所有两个单词的组合。比如说, $string = "This is a string"; 现在,我想要得到的输出是字符串中已经存在的所有2字组合的数组,它将产生如下输出- array("This is","is a","a string"); 注意:我不想要像“IsThis”reverse、“IsString”random这样的额外组合 想知道这是否可以通过一个已经存在的类来实现?我已经尝试过使用explode函数,但它不起作用 谢谢:这很简

所以我要做的是从一个字符串中找出字符串中唯一存在的所有两个单词的组合。比如说,

$string = "This is a string";
现在,我想要得到的输出是字符串中已经存在的所有2字组合的数组,它将产生如下输出-

array("This is","is a","a string");
注意:我不想要像“IsThis”reverse、“IsString”random这样的额外组合

想知道这是否可以通过一个已经存在的类来实现?我已经尝试过使用explode函数,但它不起作用


谢谢:这很简单!分解字符串并循环:

$string = "This is a string";

$words = explode(' ', $string);
$pairs = [];

for ($x = 0; $x < (count($words) -1); $x++) {
    $pairs[$x] = $words[$x] .' ' . $words[$x + 1];
}

var_dump($pairs);

你可以在这里看到它的作用。您不能只是要求提供一个工作代码,而是展示您已经尝试过的内容请阅读。这不是一个代码编写服务!我们希望你向我们展示一些你已经尝试过的东西,并给我们一个适当的问题描述。解决起来非常简单-在空间中分解得到一个单个单词的数组,然后从第一个到第二个到最后一个元素对该数组进行for循环,在每次迭代中,将一个由当前循环索引位置的单词和下一个循环索引位置的单词组成的新数组插入到结果数组中…完成。@O4FS很好,我已经尝试过了,但我不想要额外的组合,比如反向组合,随机组合,等等,因为这将产生大量额外的单词,并增加我的算法的计算时间。我只想得到现在的两个单词组合。哦,嘿,如果我在作业中发布一个问题,你也能给我一个好答案吗;DHey@Sammitch你好吗-D
array(3) { 
  [0]=> string(7) "This is" 
  [1]=> string(4) "is a" 
  [2]=> string(8) "a string" 
}
<?php

$string = "Say hello wave goodbye";
$delim  = ' ';
$words  = explode($delim, $string);
$last   = null;
foreach($words as $word) {
    if(!is_null($last))
        $pairs[] = $last . $delim . $word;
    $last = $word;
}
var_export($pairs);
array (
    0 => 'Say hello',
    1 => 'hello wave',
    2 => 'wave goodbye',
  )