php根据带有空格分隔符的给定字符串生成多个字符串

时间:2014-07-26 08:27:44

标签: php string

如何使用空格分隔符在给定字符串上生成多个字符串。 例: 我有一个像

这样的字符串

Ex.:1       'This is string'       将输出以下字符串:       'This is', 'This string', 'is string'

$arrStrSplit = explode($splitBy, $strInfo);
for($outer = 0; $outer < count($arrStrSplit); $outer++)
{
    for($inner = $outer+1; $inner < count($arrStrSplit); $inner++)
    {
        array_push($arrStrSplitPair, $arrStrSplit[$outer].' '.$arrStrSplit[$inner]);
    }
}

如果多个单词字符串超过3 +

,该怎么办?

例2:       'This is new string'

  Output:

  'This is', 'This new', 'This string', 'is new', 'is string', 'new string',
  'This is new', 'This is string', 'This new string', 'is new string'

等等:输入字符串有没有。的话。从2到15-20等...

即。 2 TO的字串数(给定字符串的字数 - 1)

1 个答案:

答案 0 :(得分:1)

经过多次更新......

http://php.net/manual/en/function.shuffle.php#88408

$string = 'This is new string';
$array = explode(' ', $string);

function powerSet($in, $minLength = 1) {
    $count = count($in);
    $members = pow(2,$count);
    $return = array();
    for ($i = 0; $i < $members; $i++) {
        $b = sprintf("%0".$count."b",$i);
        $out = array();
        for ($j = 0; $j < $count; $j++) {
            if ($b{$j} == '1') $out[] = $in[$j];
        }
        if (count($out) >= $minLength) {
            $return[] = $out;
        }
    }
    return $return;
} 
$sets = powerSet($array, 1);

这就是我的全部想法! 最好的问候!