PHP에서 여러 배열에 있는 항목의 모든 조합 생성
여러 배열에 있는 항목의 모든 조합을 찾는 작업은 프로그래밍에서 자주 발생합니다. . 배열의 수와 각 배열 내의 요소는 다를 수 있습니다.
재귀적 솔루션
재귀적 접근 방식으로 이 문제를 효과적으로 해결할 수 있습니다. Combinations() 함수는 해결책을 제공합니다:
function combinations($arrays, $i = 0) { if (!isset($arrays[$i])) { return array(); } if ($i == count($arrays) - 1) { return $arrays[$i]; } // get combinations from subsequent arrays $tmp = combinations($arrays, $i + 1); $result = array(); // concat each array from tmp with each element from $arrays[$i] foreach ($arrays[$i] as $v) { foreach ($tmp as $t) { $result[] = is_array($t) ? array_merge(array($v), $t) : array($v, $t); } } return $result; }
사용 예
배열을 고려하십시오:
$arrayA = array('A1','A2','A3'); $arrayB = array('B1','B2','B3'); $arrayC = array('C1','C2');
모두 찾으려면 조합:
print_r(combinations(array($arrayA, $arrayB, $arrayC)));
출력:
Array ( [0] => A1 [1] => B1 [2] => C1 [3] => A1 [4] => B1 [5] => C2 [6] => A1 [7] => B2 [8] => C1 [9] => A1 [10] => B2 [11] => C2 [12] => A1 [13] => B3 [14] => C1 [15] => A1 [16] => B3 [17] => C2 [18] => A2 [19] => B1 [20] => C1 [21] => A2 [22] => B1 [23] => C2 [24] => A2 [25] => B2 [26] => C1 [27] => A2 [28] => B2 [29] => C2 [30] => A2 [31] => B3 [32] => C1 [33] => A2 [34] => B3 [35] => C2 [36] => A3 [37] => B1 [38] => C1 [39] => A3 [40] => B1 [41] => C2 [42] => A3 [43] => B2 [44] => C1 [45] => A3 [46] => B2 [47] => C2 [48] => A3 [49] => B3 [50] => C1 [51] => A3 [52] => B3 [53] => C2 )
이 솔루션은 가능한 모든 조합을 효율적인 방식으로 제공합니다.
위 내용은 PHP의 여러 배열에서 항목의 모든 조합을 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!