0

我有一个包含几个单词的数组,例如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'
);
4

1 回答 1

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

于 2013-03-01T19:46:28.813 回答