如何使用空格分隔符在给定字符串上生成多个字符串。 例: 我有一个像
这样的字符串 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)
答案 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);
这就是我的全部想法! 最好的问候!