테스트 사이트 - 개발 중인 베타 버전입니다

문자 형식 배열의 경우의 수 채택완료

아썸 6년 전 조회 2,210

gr_a 부터 gr_u 까지 22개의 문자 그룹이 있습니다. 각 그룹은 2개씩의 숫자를 배열로 포함하고 있고요.

이것을 3그룹씩 조합해 총 1,540개의 조합을 생성하려고 하는데 어떤식으로 접근할지 모르겠습니다.

 

a-b-c, a-b-d, a-b-e .... a-c-d, a-c-e ... (A로 시작 - 210개 조합 발생)

b-c-d, b-c-e, b-c-f .... b-d-e, b-d-f ... (B로 시작 - 190개 조합 발생)

c-d-e, c-d-f, c-d-g .... c-e-f, c-e-g ... (C로 시작 - 171개 조합 발생)

..

..

t-u-v (T로 시작 - 1개 조합 발생)

(총 1,540개 조합 발생)

 

아래처럼 접근할 경우,

array() 내용을 위 조합 예시처럼 유기적으로 변동할 수 있을까요? 아니면 문자열을 숫자로

치환하거나 이것도 안된다면 노가다로 1540개의 배열을 작성해야할지..;;

</p>

<p>for ($i=1; $i <= 1540; $i++) {

  ${'combin'.$i.'_arr'} = array( $gr_a[0],$gr_a[1],$gr_b[0],$gr_b[1],$gr_c[0],$gr_c[1] );</p>

<p>}</p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트

</p>

<p>$pool = range('a', 'v');

$len = count($pool);

$res = [];

for($i=0; $i<$len; $i++) {

    for($j=$i+1; $j<$len; $j++) {

        for($k=$j+1; $k<$len; $k++) {

            $res[] = sprintf('%s-%s-%s', $pool[$i], $pool[$j], $pool[$k]);

        }

    }

}</p>

<p>

 

이렇게 하시면 될듯요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아썸
6년 전
감사합니다! 반영해서 결과를 보기까지 시간이 좀 걸리겠지만 가능하다는 걸 안것만 해도
큰 도움이 될거 같습니다. 정말 감사합니다~
===== 정상적으로 반영 완료 =======^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인