2009-09-16 11 views
1

내가 두 배열 PHP에서 배열을 곱하는 가장 좋은 방법은 무엇입니까?

<?PHP 
     $arr1 = array("a","b","c"); 
     $arr2 = array("1","2","3"); 

     function multiply_arrays($arr1,$arr2){ 
      //what is the best way to do that in terms of speed and memory 
      return $arr3; 
     } 
    ?> 

을 증식하는 가장 좋은 방법은 무엇입니까

을 말할 수?

결과는 다음 값으로 배열되어야한다 :

A1 A2 A3 B1 B2 B3 C1 C2 C3

I 같은 에러에 직면하지 않으므로 이 :

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 39 bytes) 

감사합니다.

+1

수학적으로 이것을 텐서 곱이라고 부르지 만, OP가 요구하는 프로그래밍 용어를 기억할 수 없습니다. –

답변

8

간단한 중첩 루프?

function multiply_arrays(array $arr1, array $arr2) { 
    $ret = array(); 
    foreach ($arr1 as $v1) { 
    foreach ($arr2 as $v2) { 
     $ret[] = $v1 . $v2; 
    } 
    } 
    return $ret; 
} 

예를 들어 문자열 연결을 기반으로한다고 가정합니다. 그렇지 않은 경우 가장 안쪽의 선은 단순히 의도 한 결과로 변경됩니다.

+1

+1 솔루션을 찾는 것입니다. 이런 종류의 코드는 아마도 메모리 제한을 맞추지 못할 것입니다. 배열이 수백만 또는 수십억 개의 요소와 같은 경우에만 가능합니다. – mauris

관련 문제