当前位置:Gxlcms > PHP教程 > 问下如何生成所有的不重复的数组

问下如何生成所有的不重复的数组

时间:2021-07-01 10:21:17 帮助过:16人阅读

问下怎么生成所有的不重复的数组
本帖最后由 wxinlin 于 2014-11-12 19:06:14 编辑

比如 ab
生成
ab
ba
比如 a b c
生成所有的
abc
acb
bac
bca
cab
cba

------解决思路----------------------
$str    = 'abc';
$res = Arrangement( $str );
print_r($res);

function Arrangement($arr = array(), $res = '') {
if(! is_array($arr) ) $arr = str_split($arr);
if(empty($arr)) $array[] = $res;
else foreach($arr AS $k => $v) {
unset($arr[$k]);
foreach( Arrangement($arr, $res . $v) AS $t) $array[] = $t;
$arr[$k] = $v;
}
return $array;
}
Array
(
[0] => abc
[1] => acb
[2] => bca
[3] => bac
[4] => cab
[5] => cba
)

人气教程排行