2009-09-16 10 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

これは:

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

関連する問題