2016-08-19 1 views
-2

こんにちは、私はこれらの2つの異なるフォーマットの配列を新しい配列を作成する最良の方法で結合しようとしています。新しい配列を作成するために2つの異なった形式の配列を組み合わせる最良の方法

アレイ1:それは動的配列だが、形式は同じになります

Array 
(
[0] => stdClass Object 
    (
     [label] => Name 
     [fieldtype] => text 
     [required] => 1 
     [description] => Sku Name 
     [sku_id] => skucid1 
    ) 

[1] => stdClass Object 
    (
     [label] => Id 
     [fieldtype] => text 
     [required] => 
     [description] => Sku Id 
     [sku_id] => skucid2 
    ) 

[2] => stdClass Object 
    (
     [label] => Unit Price 
     [fieldtype] => decimal 
     [required] => 
     [description] => Sku Unit Price 
     [sku_id] => skucid3 
    ) 

[3] => stdClass Object 
    (
     [label] => Tax 
     [fieldtype] => decimal 
     [required] => 
     [description] => Sku Tax 
     [sku_id] => skucid4 
    ) 

[4] => stdClass Object 
    (
     [label] => Quantity 
     [fieldtype] => number 
     [required] => 1 
     [description] => Sku Quantity 
     [sku_id] => skucid5 
    ) 

[5] => stdClass Object 
    (
     [label] => Total 
     [fieldtype] => decimal 
     [required] => 
     [description] => Sku Total 
     [sku_id] => skucid6 
    ) 

) 

アレイ2:これは、動的配列が、形式は同じになります

Array 
(
[0] => Array 
    (
     [0] => J1 
     [1] => SKUJ1 
     [2] => 1000 
     [3] => 100 
     [4] => 10 
     [5] => 11000 
    ) 

[1] => Array 
    (
     [0] => J2 
     [1] => SKUJ2 
     [2] => 2000 
     [3] => 100 
     [4] => 10 
     [5] => 21000 
    ) 

) 
私がしようとしています出し配列が

ました"value"という名前の各オブジェクトに余分なキーを持つ2番目の配列の同じ配列のオブジェクトを作成し、そのキーの値は2番目の配列の対応するキー値のペアです。二つの配列上記の

例JSON出力:

[ 
    [ 
    { 
     "label": "Name", 
     "fieldtype": "text", 
     "required": true, 
     "description": "Sku Name", 
     "sku_id": "skucid1", 
     "value": "J1" 
    }, 
    { 
     "label": "Id", 
     "fieldtype": "text", 
     "required": false, 
     "description": "Sku Id", 
     "sku_id": "skucid2", 
     "value": "SKUJ1" 
    }, 
    { 
     "label": "Unit Price", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Unit Price", 
     "sku_id": "skucid3", 
     "value": "1000" 
    }, 
    { 
     "label": "Tax", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Tax", 
     "sku_id": "skucid4", 
     "value": "100" 
    }, 
    { 
     "label": "Quantity", 
     "fieldtype": "number", 
     "required": true, 
     "description": "Sku Quantity", 
     "sku_id": "skucid5", 
     "value": "10" 
    }, 
    { 
     "label": "Total", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Total", 
     "sku_id": "skucid6", 
     "value": "11000" 
    } 
    ], 
    [ 
    { 
     "label": "Name", 
     "fieldtype": "text", 
     "required": true, 
     "description": "Sku Name", 
     "sku_id": "skucid1", 
     "value": "J2" 
    }, 
    { 
     "label": "Id", 
     "fieldtype": "text", 
     "required": false, 
     "description": "Sku Id", 
     "sku_id": "skucid2", 
     "value": "SKUJ2" 
    }, 
    { 
     "label": "Unit Price", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Unit Price", 
     "sku_id": "skucid3", 
     "value": "2000" 
    }, 
    { 
     "label": "Tax", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Tax", 
     "sku_id": "skucid4", 
     "value": "100" 
    }, 
    { 
     "label": "Quantity", 
     "fieldtype": "number", 
     "required": true, 
     "description": "Sku Quantity", 
     "sku_id": "skucid5", 
     "value": "10" 
    }, 
    { 
     "label": "Total", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Total", 
     "sku_id": "skucid6", 
     "value": "21000" 
    } 
    ] 
] 

出力は私が現時点で取得しています:

[ 
    [ 
    { 
     "label": "Name", 
     "fieldtype": "text", 
     "required": true, 
     "description": "Sku Name", 
     "sku_id": "skucid1", 
     "value": "J2" 
    }, 
    { 
     "label": "Id", 
     "fieldtype": "text", 
     "required": false, 
     "description": "Sku Id", 
     "sku_id": "skucid2", 
     "value": "SKUJ2" 
    }, 
    { 
     "label": "Unit Price", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Unit Price", 
     "sku_id": "skucid3", 
     "value": "2000" 
    }, 
    { 
     "label": "Tax", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Tax", 
     "sku_id": "skucid4", 
     "value": "100" 
    }, 
    { 
     "label": "Quantity", 
     "fieldtype": "number", 
     "required": true, 
     "description": "Sku Quantity", 
     "sku_id": "skucid5", 
     "value": "10" 
    }, 
    { 
     "label": "Total", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Total", 
     "sku_id": "skucid6", 
     "value": "21000" 
    } 
    ], 
    [ 
    { 
     "label": "Name", 
     "fieldtype": "text", 
     "required": true, 
     "description": "Sku Name", 
     "sku_id": "skucid1", 
     "value": "J2" 
    }, 
    { 
     "label": "Id", 
     "fieldtype": "text", 
     "required": false, 
     "description": "Sku Id", 
     "sku_id": "skucid2", 
     "value": "SKUJ2" 
    }, 
    { 
     "label": "Unit Price", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Unit Price", 
     "sku_id": "skucid3", 
     "value": "2000" 
    }, 
    { 
     "label": "Tax", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Tax", 
     "sku_id": "skucid4", 
     "value": "100" 
    }, 
    { 
     "label": "Quantity", 
     "fieldtype": "number", 
     "required": true, 
     "description": "Sku Quantity", 
     "sku_id": "skucid5", 
     "value": "10" 
    }, 
    { 
     "label": "Total", 
     "fieldtype": "decimal", 
     "required": false, 
     "description": "Sku Total", 
     "sku_id": "skucid6", 
     "value": "21000" 
    } 
    ] 
] 
+0

だけで値を書き込む上でのみ – Ghost

+0

foreachのforeach' '使用常に –

+0

どこコードはありますか? –

答えて

0

は/ P oを保持するために、第三の変数を取ります。 2番目の配列をループし、各2次元の項目を繰り返します。最初の配列の第2レベル値(0,1,2)のキー/インデックスをトレースし、新しい配列に代入します。このために、私はコードの下にあなたをお勧め: -

$array1 = "Your Input Array"; 
$array2 = "Your Input Array"; 
$array3 = array() 

foreach($array2 as $arr2Key => $arr2Value): 
    $array3[$arr2Key] = array(); 

    foreach($arr2Value as $arr2Innerkey => $arr2InnerValue): 

    if (array_key_exists($arr2Innerkey, $array1)): 
     $array1Obj = array(); 
     $array1Obj = (array) $array1[$arr2Innerkey]; 
     $array1Obj['value'] = $arr2InnerValue; 
     $array3[$arr2Key][] = $arr2InnerValue; 
    endif; 

    endforeach; 

endforeach; 


echo json_encode($array3); 
+0

はまだ書きかけた書きかけ –

+0

が起こっています –

+0

iは –

関連する問題