求助一个数组元素所有组合的算法 向高手们求助一个算法有数组:$arr=array(A,B,C);要求输出:AABACABCBBABCCCACB就是要输出数组元素的所有组合,顺序不要求,只要求能全部输入就可以了算法 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 上面还要输出一个ACB,BAC,BCA,CAB,CBA也就是Array ( [0] => A [1] => AB [2] => AC [3] => ABC [4] => ACB [5] => B [6] => BA [7] => BC [8] => BAC [9] => BCA [10] => C [11] => CA [12] => CB [13] => CBA [14] => CAB ) $ar = array('A', 'B', 'C');$res = array_chunk($ar, 1);for($i=1; $i<count($ar); $i++) { foreach($res as $r) { if(count($r) != $i) continue; foreach($ar as $v) { if(! in_array($v, $r)) $res[] = array_merge($r, array($v)); } }}//print_r($res);foreach($res as &$r) $r = join('', $r);print_r($res);Array( [0] => A [1] => B [2] => C [3] => AB [4] => AC [5] => BA [6] => BC [7] => CA [8] => CB [9] => ABC [10] => ACB [11] => BAC [12] => BCA [13] => CAB [14] => CBA) <?php$ar=array(A,B,C);function foo($ar,$m,$s='') {global $global_arr;//命名全局变量if (!empty($s)) $global_arr[]=$s;if($m > 0) { for($i=0;$i<count($ar);$i++) { if (!strstr($s,$ar[$i])) foo($ar,$m-1,$s.$ar[$i]); //递归 } }}foo($ar,count($ar));print_r($global_arr);//输出结果?> 子类使用父类变量 想做一个文件下载管理系统 连数据库问题?? 没有安装GD库???!!! include的文件怎么出错? 变量传递问题!! 为什么我的MYSQL(4.1.7)加上密码就连接不了? 刚入门, 请教一个小问题 如何完全禁止apache一个目录的解php权限? 关联表查询问题 大家好,别人给我开发的网站为何在百度中搜索不到相应的关键字,是php的问题吗? 关于数组循环判断问题
Array ( [0] => A [1] => AB [2] => AC [3] => ABC [4] => ACB [5] => B [6] => BA [7] => BC [8] => BAC [9] => BCA [10] => C [11] => CA [12] => CB [13] => CBA [14] => CAB )
for($i=1; $i<count($ar); $i++) {
foreach($res as $r) {
if(count($r) != $i) continue;
foreach($ar as $v) {
if(! in_array($v, $r)) $res[] = array_merge($r, array($v));
}
}
}
//print_r($res);
foreach($res as &$r) $r = join('', $r);
print_r($res);Array
(
[0] => A
[1] => B
[2] => C
[3] => AB
[4] => AC
[5] => BA
[6] => BC
[7] => CA
[8] => CB
[9] => ABC
[10] => ACB
[11] => BAC
[12] => BCA
[13] => CAB
[14] => CBA
)
$ar=array(A,B,C);
function foo($ar,$m,$s='') {
global $global_arr;//命名全局变量
if (!empty($s)) $global_arr[]=$s;
if($m > 0) {
for($i=0;$i<count($ar);$i++) {
if (!strstr($s,$ar[$i])) foo($ar,$m-1,$s.$ar[$i]); //递归
}
}
}
foo($ar,count($ar));
print_r($global_arr);//输出结果
?>