可能なすべての組み合わせを返す関数が必要です。
例えば
chars = range('a'、'c');
- = aaa
- = aab
- =aba
- = abb
- = abc
- = acb...n。= ccc
(順序は関係ありません)
等々
私はこれを得た
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);
ここから
しかし、私はこれを偶然/書き直して、複数の同じ要素とのすべての可能な組み合わせを取得する方法を理解できませんでした。
ありがとう、モハマー