在php中生成组合

时间:2013-03-01 19:43:32

标签: php combinations

我的数组很少,例如String AString BString 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'
);

1 个答案:

答案 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