我受到这篇文章的启发:
PHP算法从单个集合生成特定大小的所有组合
我使用下面的代码片段:function comb ($n, $elems) {
if ($n > 0) {
$tmp_set = array();
$res = comb($n-1, $elems);
foreach ($res as $ce) {
foreach ($elems as $e) {
array_push($tmp_set, $ce . $e);
}
}
return $tmp_set;
}
else {
return array('');
}
}
$elems = array('A','B','C', 'a', 'b', 'c', 0, 1, 2, 3);
$v = comb(7, $elems);
这工作得很好,但问题是,它创建了这样的组合:
(A, B, A)(a, b, c)(a, b, c, 0)(A, B, C, 1, 2)
我想跳过所有这些3的组合,我只想要7位数的所有组合,FPR示例:
(A, B, C, 0, 1, 2, A)(A, B, C, 0, 1, 2, B)
等等…
我如何调整这段代码,
谢谢你的帮助!
你的代码对我来说很好。尝试只使用三个元素运行它,您将看到它只输出长度为7的组合。别忘了在末尾加上print_r($v)