在PHP中合并和混合字符串

时间:2019-03-07 11:56:06

标签: php string

我正在尝试循环一些可以组合和混合2个字符串的东西。

因此,我希望给定字符串的字符之间的所有可能组合都采用“第一个字符串的每个字符+第二个字符串的每个字符”的方案。示例:

test & name
tame, teme, tese, tesme, teste, tname, tename, tesame, testme, tesname, testame
name & test
namt, nast, nest, namet, namst, ntest, namest, natest, namtest

我正在尝试如下操作:

$str1 = "test";
$str2 = "name";

echo substr($str1,0,1).substr($str2,-3).','.substr($str1,0,2).substr($str2,-2).','.substr($str1,0,1).substr($str2,-4).','.substr($str1,0,3).substr($str2,-2)
.','.substr($str1,0,4).substr($str2,-1).','.substr($str1,0,2).substr($str2,-3).','.substr($str1,0,1).substr($str2,-5).','.substr($str1,0,2).substr($str2,-4)
.','.substr($str1,0,4).substr($str2,-2);

但这是局部的,需要很多匹配所有组合。也是丑陋的。而且,如果输入字符串更大或更小,组合的数量也将有所不同。

您有什么建议吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试这样

Class.cs

答案 1 :(得分:0)

$str1 = "test";
$str2 = "name";
$len1 = strlen($str1);
$len2 = strlen($str2);
$arr3 =array();
for ($i = 0; $i <=$len1; $i++) {  
    $arr3[] = substr($str1,0,$i+1).substr($str2,($i-$len1));
}
for ($i = 0; $i <=$len2; $i++) {  
    $arr3[] = substr($str2,0,$i+1).substr($str1,($i-$len2));
}

$arr3 = array_unique($arr3);
echo implode(',', $arr3);

我想到了这个