2017-04-01 4 views
-2

実際にはマージまたは再帰モードと呼ばれる場合、2つの配列をマージすることについて本当に混乱します。これまで私はいくつかの例を見てきましたが、必要な結果を得る方法を実際に理解していませんでした。PHPを使用して2つの配列をマージする方法

$arrays = array('A1','A2','A3'); 
$result = array('B1','B2','B3'); 

私はA1 B1、A1 B2、A1 B3のようなものを手に入れたいと思っていました。その後、A2 B1、A2 B2、A2 B3、そしてA3 B1、A3 B2、A3 B3ですが、これがどのように行われるのかは分かりません。 私はそれにいくつかの値を変更しようとしたオンライン

function get_combinations($arrays) { 
    $result = array(array()); 
    foreach ($arrays as $property => $property_values) { 
     $tmp = array(); 
     foreach ($result as $result_item) { 
      foreach ($property_values as $property_key => $property_value) { 
       $tmp[] = $result_item + array($property_key => $property_value); 
      } 
     } 
     $result = $tmp; 
    } 
    return $result; 
} 

このコードを見つけましたが、私は一例で、このようなものを作る方法を知らないので、それは、私のために動作しませんでした。どこかに重複がある場合は私を許してください、私はそれを動作させる方法を知らないだけです。どんな助けもありがとう。

回答: 皆さん、ありがとう、私は本当にそれを動作させることができました。私はアカウントのいくつかの制限のために通常の方法でそれに答えることができませんでした。彼の例ではchris85に感謝します。それは素晴らしい作品です。これらの値を配列に格納することができました。これは私のコードです:

$arrays = array('A1','A2','A3'); 
$result = array('B1','B2','B3'); 
$myarray = array(); 

    foreach($arrays as $value) { 
    foreach($result as $value2){ 
    $myarray[] = $value . $value2; 
     } 
    } 
     print_r ($myarray); 
+0

このような出力を文字列として使用しますか?このように "A1、B1、B2、B3、A2、B1、B2 B3、A3、B1、B2、B3" –

+0

申し訳ありませんが、私は間違いました。本当にごめんなさい。 A1 B1、A1 B2、A1 B3のような出力が必要です。次に、A2 B1、A2 B2、A2 B3、次いでA3 B1、A3 B2、A3 B3 –

答えて

1
<?php 

$array1 = array('A1','A2','A3'); 
$array2 = array('B1','B2','B3'); 
foreach($array1 as $val1) { 
    foreach($array2 as $val2)echo $val1.$val2. " "; 
    echo "\n"; 
} 

Output: 

A1B1 A1B2 A1B3 
A2B1 A2B2 A2B3 
A3B1 A3B2 A3B3 
1

あなたの目的は、1次元配列には適していません。結果としてペアまたは2次元配列を使用する必要があります。あなたの希望する操作は実際にデカルト積です。

$arrays = array('A1','A2','A3'); 
$result = array('B1','B2','B3'); 
$i=0; 
foreach($arrays as $value1) 
    foreach($result as $value2) 
    { 
    $final[$i][1]=$value1; 
    $final[$i][2]=$value2; 
    $i++; 
    } 
関連する問題