我的数组很少,例如String A
,String B
,String C
(或更多)
$array = array('A','B','C');
如何在新数组中获取所有组合,如下所示:
$result = array(
'A,B,C',
'A,C,B',
'B,C,A',
'B,A,C',
'C,A,B',
'C,B,A',
'A,B',
'A,C',
'B,A',
'B,C',
'C,A',
'C,B',
'A',
'B',
'C'
);
答案 0 :(得分:1)
<?php
$array = array('A', 'B', 'C', 'D');
function depth_picker($arr, $temp_string, &$collect) {
if ($temp_string != "")
$collect []= $temp_string;
for ($i=0; $i<sizeof($arr);$i++) {
$arrcopy = $arr;
$elem = array_splice($arrcopy, $i, 1); // removes and returns the i'th element
if (sizeof($arrcopy) > 0) {
depth_picker($arrcopy, $temp_string ." " . $elem[0], $collect);
} else {
$collect []= $temp_string. " " . $elem[0];
}
}
}
$collect = array();
depth_picker($array, "", $collect);
print_r($collect);
?>
代码来自stackoverflow: StackOverflow Link