【发布时间】:2012-11-06 12:16:58
【问题描述】:
我需要一个返回所有可能组合的函数,
例如
chars = range('a', 'c');
- = a a a
- = a a b
- = a b a
- = a b b
- = a b c
- = a c b ... n. = c c c
(顺序无关紧要)
等等
我知道了
function pc_permute($items, $perms = array( )) {
if (empty($items)) {
$return = array($perms);
} else {
$return = array();
for ($i = count($items) - 1; $i >= 0; --$i) {
$newitems = $items;
$newperms = $perms;
list($foo) = array_splice($newitems, $i, 1);
array_unshift($newperms, $foo);
$return = array_merge($return, pc_permute($newitems, $newperms));
}
}
return $return;
}
$p = pc_permute(array(0, 1, 2, 3));
var_dump($p);
来自Here
但我无法弄清楚如何机会/重写它以获得与多个相同元素的所有可能组合。
谢谢,穆哈默
【问题讨论】:
标签: php permutation