1 回答

TA贡献1828条经验 获得超3个赞
您可以使用递归函数,将第一个单词的排列与其余单词的所有可能排列组合起来:
function computeAllPermutations(array $words, array $separators): array
{
switch (count($words)) {
case 0:
return [];
case 1:
return [$words[0]];
default:
$permutations = [];
foreach (computeAllPermutations(array_slice($words, 1), $separators) as $subPermutation) {
foreach ($separators as $separator) {
$permutations[] = $words[0] . $separator . $subPermutation;
}
}
return $permutations;
}
}
用法:
$words = preg_split('/\h+/', $MyString);
$permutations = computeAllPermutations($words, $char);
print_r($permutations);
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报