문자 형식 배열의 경우의 수

문자 형식 배열의 경우의 수

QA

문자 형식 배열의 경우의 수

본문

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개의 배열을 작성해야할지..;;


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] );
}

이 질문에 댓글 쓰기 :

답변 1


$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]);
        }
    }
}

 

이렇게 하시면 될듯요.

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

답변을 작성하시기 전에 로그인 해주세요.
전체 67
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT