从a-f六个字符中取出3-4个字符进行组合该怎么做?

$arr=[a,b,c,d,e,f];

从数组$arr中取出3个或4个字符两种情况都考虑组合成新的字符,比如abc,abd,abe,abcd等,同时考虑顺序不同的情况,abc和acb视为不同的情况,将新的字符存入数组,
$newArr[]=abc;
$newArr[]=abd;
$newArr[]=abe;
$newArr[]=abcd;
$newArr[]=acbd;

怎样列举所有的情况?

function dfs$pre, $chars, $arr, $lenArr { if!empty$pre && in_arraystrlen$pre, $lenArr{ $arr[] = $pre; } if!empty$chars { foreach $chars as $char { $tempChars = array; foreach $chars as $c { if $c !== $char { $tempChars[] = $c; } } $arr = $this->dfs$pre.$char, $tempChars, $arr, $lenArr; } } return $arr;
} function get_combine { $chars = arraya, b, c, d, e, f; $combineArray = array; $combineArray = $this->dfs, $chars, $combineArray, array3, 4; echo count$combineArray.<br>; var_dump$combineArray;
} 

用递归可以实现

发表评论

电子邮件地址不会被公开。 必填项已用*标注