PHP 배열 곱집합 구하기

PHP 배열 곱집합 구하기
PHP array_cartesian

1 예제 1[ | ]

<?php
function xmp($arr)
{
    echo '<xmp>';
    print_r($arr);
    echo '</xmp>';
}

function array_cartesian() : array
{
    $_ = func_get_args();
    if (count($_) == 0) {
        return array(array());
    }
    $a = array_shift($_);
    $c = call_user_func_array(__FUNCTION__, $_);
    $r = array();
    foreach ($a as $v)
        foreach ($c as $p)
            $r[] = array_merge(array($v), $p);
    return $r;
}

$cross = array_cartesian(
    array('사과', '배', '오렌지'),
    array('Steve', 'Bob')
);
xmp($cross);

2 예제 2[ | ]

$rps = array('가위', '바위', '보');
$cases = array_cartesian($rps, $rps, $rps);
xmp($cases);

3 같이 보기[ | ]

4 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}