"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > PHP의 1차원 배열 내에서 요소의 가능한 모든 조합과 순열을 어떻게 생성할 수 있습니까?

PHP의 1차원 배열 내에서 요소의 가능한 모든 조합과 순열을 어떻게 생성할 수 있습니까?

2024년 11월 15일에 게시됨
검색:422

How can I generate all possible combinations and permutations of elements within a one-dimensional array in PHP?

PHP: 1차원 배열의 가능한 모든 조합을 얻는 방법

이 글에서는 배열 내에서 가능한 모든 요소 조합을 검색하는 방법을 살펴보겠습니다. PHP의 1차원 배열. 다른 솔루션과 달리 이 접근 방식은 조합과 순열을 모두 고려합니다.

문제 설명

문자열이나 숫자의 배열이 주어지면 목표는 요소의 가능한 모든 조합을 생성하는 것입니다. 다양한 합의를 고려합니다. 예를 들어 '알파 베타'와 '베타 알파'는 출력에 포함되어야 하는 고유한 조합입니다.

PHP 솔루션

제공된 PHP 솔루션은 재귀적 깊이 우선 검색 알고리즘을 사용합니다.

솔루션 분석

  • deep_picker 함수는 초기 배열, 빈 문자열 및 빈 배열 참조로 호출됩니다.
  • 재귀적으로 루프됩니다. 배열을 통해 현재 결과 문자열의 끝에 각 요소를 추가합니다.
  • 임시 문자열에 요소가 있을 때마다 결과에 추가됩니다. 배열.
  • 입력 배열에 아직 요소가 남아 있으면 함수는 업데이트된 배열과 임시 문자열로 자신을 호출합니다.
  • 더 이상 요소가 남아 있지 않으면 완전한 조합이 Collect 배열에 추가됩니다.

출력

제공된 코드는 주어진 요소의 모든 조합과 순열을 포함하는 다음 출력을 생성합니다. 배열:

Array
(
    [0] =>  Alpha
    [1] =>  Alpha Beta
    [2] =>  Alpha Beta Gamma
    [3] =>  Alpha Beta Gamma Sigma
    [4] =>  Alpha Beta Sigma
    [5] =>  Alpha Beta Sigma Gamma
    [6] =>  Alpha Gamma
    [7] =>  Alpha Gamma Beta
    [8] =>  Alpha Gamma Beta Sigma
    [9] =>  Alpha Gamma Sigma
    [10] =>  Alpha Gamma Sigma Beta
    [11] =>  Alpha Sigma
    [12] =>  Alpha Sigma Beta
    [13] =>  Alpha Sigma Beta Gamma
    [14] =>  Alpha Sigma Gamma
    [15] =>  Alpha Sigma Gamma Beta
    [16] =>  Beta
    [17] =>  Beta Alpha
    [18] =>  Beta Alpha Gamma
    [19] =>  Beta Alpha Gamma Sigma
    [20] =>  Beta Alpha Sigma
    [21] =>  Beta Alpha Sigma Gamma
    [22] =>  Beta Gamma
    [23] =>  Beta Gamma Alpha
    [24] =>  Beta Gamma Alpha Sigma
    [25] =>  Beta Gamma Sigma
    [26] =>  Beta Gamma Sigma Alpha
    [27] =>  Beta Sigma
    [28] =>  Beta Sigma Alpha
    [29] =>  Beta Sigma Alpha Gamma
    [30] =>  Beta Sigma Gamma
    [31] =>  Beta Sigma Gamma Alpha
    [32] =>  Gamma
    [33] =>  Gamma Alpha
    [34] =>  Gamma Alpha Beta
    [35] =>  Gamma Alpha Beta Sigma
    [36] =>  Gamma Alpha Sigma
    [37] =>  Gamma Alpha Sigma Beta
    [38] =>  Gamma Beta
    [39] =>  Gamma Beta Alpha
    [40] =>  Gamma Beta Alpha Sigma
    [41] =>  Gamma Beta Sigma
    [42] =>  Gamma Beta Sigma Alpha
    [43] =>  Gamma Sigma
    [44] =>  Gamma Sigma Alpha
    [45] =>  Gamma Sigma Alpha Beta
    [46] =>  Gamma Sigma Beta
    [47] =>  Gamma Sigma Beta Alpha
    [48] =>  Sigma
    [49] =>  Sigma Alpha
    [50] =>  Sigma Alpha Beta
    [51] =>  Sigma Alpha Beta Gamma
    [52] =>  Sigma Alpha Gamma
    [53] =>  Sigma Alpha Gamma Beta
    [54] =>  Sigma Beta
    [55] =>  Sigma Beta Alpha
    [56] =>  Sigma Beta Alpha Gamma
    [57] =>  Sigma Beta Gamma
    [58] =>  Sigma Beta Gamma Alpha
    [59] =>  Sigma Gamma
    [60] =>  Sigma Gamma Alpha
    [61] =>  Sigma Gamma Alpha Beta
    [62] =>  Sigma Gamma Beta
    [63] =>  Sigma Gamma Beta Alpha
)
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3