0

いくつかの単語を含む配列があります。たとえば、、、String A(またはそれ以上)String 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'
);
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リンク

于 2013-03-01T19:46:28.813 に答える