2016-08-19 65 views
-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」的每個對象中的第二個數組的對象創建相同數量的對象,並在第二個數組中包含對應的鍵值對。

的上述兩個實施例的陣列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" 
    } 
    ] 
] 

輸出I獲得目前正在:

[ 
    [ 
    { 
     "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

只是用'foreach' – Ghost

+0

的foreach僅在總在寫值 –

+0

這裏是你的代碼? –

回答

0

以一個第三變量來保存O/P。循環第二個數組並迭代每個第二維項目。跟蹤第一個數組中第二級值(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

@Venkat什麼結束寫作意味着 –

+0

更新我的問題與輸出我得到 –