>백엔드 개발 >PHP 튜토리얼 >배열의 데카르트 곱 연산의 PHP 구현에 대한 자세한 설명

배열의 데카르트 곱 연산의 PHP 구현에 대한 자세한 설명

小云云
小云云원래의
2017-12-18 10:15:012259검색

이 글은 주로 PHP 배열의 데카르트 곱 연산의 구현을 소개하며, PHP 배열의 데카르트 곱 연산의 관련 구현 및 사용 기술을 예제 형식으로 분석합니다. 모두를 도울 수 있습니다.

배열의 데카르트 곱은 실제로 매우 유용합니다. 예를 들어 제품 사양을 계산할 때 자주 사용됩니다. 구현 방법은 다음과 같습니다.


$arr = array(
  array(2),
  array(6,7),
  array('a','b','c')
);
function dikaer($arr){
 $arr1 = array();
 $result = array_shift($arr);
 while($arr2 = array_shift($arr)){
  $arr1 = $result;
  $result = array();
  foreach($arr1 as $v){
   foreach($arr2 as $v2){
    if(!is_array($v))$v = array($v);
    if(!is_array($v2))$v2 = array($v2);
    $result[] = array_merge_recursive($v,$v2);
   }
  }
 }
 return $result;
}

위 예제의 출력 결과는 다음과 같습니다. :


Array
(
  [0] => Array
    (
      [0] => 2
      [1] => 6
      [2] => a
    )
  [1] => Array
    (
      [0] => 2
      [1] => 6
      [2] => b
    )
  [2] => Array
    (
      [0] => 2
      [1] => 6
      [2] => c
    )
  [3] => Array
    (
      [0] => 2
      [1] => 7
      [2] => a
    )
  [4] => Array
    (
      [0] => 2
      [1] => 7
      [2] => b
    )
  [5] => Array
    (
      [0] => 2
      [1] => 7
      [2] => c
    )
)

결과를 문자열 형식으로 출력해야 하는 경우 코드를 다음과 같이 변경하면 됩니다.


function dikaer($arr){
 $arr1 = array();
 $result = array_shift($arr);
 while($arr2 = array_shift($arr)){
  $arr1 = $result;
  $result = array();
  foreach($arr1 as $v){
   foreach($arr2 as $v2){
    $result[] = $v.','.$v2;
   }
  }
 }
 return $result;
}

출력 결과는 다음과 같습니다.

Array
(
  [0] => 2,6,a
  [1] => 2,6,b
  [2] => 2,6,c
  [3] => 2,7,a
  [4] => 2,7,b
  [5] => 2,7,c
)

관련 권장 사항:

생성 방법 PHP 사용자 정의 함수에 의한 데카르트 곱

데카르트 곱을 생성하는 PHP 사용자 정의 함수

데카르트 곱을 찾기 위한 여러 배열

위 내용은 배열의 데카르트 곱 연산의 PHP 구현에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.