21,886
社区成员
发帖
与我相关
我的任务
分享
t.number.each_combo = function (e, t) {
var n = [];
return function r(e, t, i) {
if (i === 0) return n.push(e);
for (var s = 0, o = t.length; s <= o - i; s++)r(e.concat(t[s]), t.slice(s + 1), i - 1);
}([], e, t), n
}
function combo($e, $t) {
$n = [];
$r = function($e, $t, $i) use (&$n, &$r){
if($i === 0) return $n[] = $e;
for($s=0,$o=count($t); $s<=$o-$i; $s++) $r(array_merge($e, [$t[$s]]), array_slice($t, $s+1), $i-1);
};
$r([], $e, $t);
return $n;
}
print_r(combo([1,2,3,4],2));
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 1
[1] => 3
)
[2] => Array
(
[0] => 1
[1] => 4
)
[3] => Array
(
[0] => 2
[1] => 3
)
[4] => Array
(
[0] => 2
[1] => 4
)
[5] => Array
(
[0] => 3
[1] => 4
)
)