PHP — объединение массивов разной длины ⇐ Php
PHP — объединение массивов разной длины
У меня есть два массива, которые мне нужно объединить в новые массивы с ключами, взятыми из значений массива. Первый массив имеет SubLineItemId как Array(Key):
$arr_sublineitems { ["e2a1b308-8895-41ce-9688-878c13b00c14"]=> { ["PurchaseOrderId"]=> "23c03079-d06e-4c5e-bebc-bfcdbfeea635" // PurchaseOrderId:VendorId 1:N ["SubLineItemId"]=> "e2a1b308-8895-41ce-9688-878c13b00c14" // PurchaseOrderId:SublineItemId = 1:N ["VendorId"]=> "24d84b89-ef9a-4347-95c0-d282fcf19b58" // PurchaseOrderId:VendorId = 1:1 ["Количество"]=> int(40) ["SellPrice"]=> float(131) ["FreightSell"]=> float(0) ["NetPrice"]=> float(121.8375) ["FreightNet"]=> float(0) ["Налогооблагаемый"]=> bool(true) ["ProjectId"]=> "827c879c-8dd6-4738-85f8-c14da2c743b8" ["Total_Sell"]=> float(5240) } ...}
Второй массив имеет PurchaseOrderId как Array(Key):
$arr_filtered_po { ["23c03079-d06e-4c5e-bebc-bfcdbfeea635"]=> //PurchaseOrderId { ["VendorId"]=> "f9757947-18cc-4b2f-9c8d-722d5a4ba38c" //VendorId:PONumber = 1:N ["PONumber"]=> "1211111-20" // PONumber:VendorId = 1:1 } ... }
Желаемый результат группируется по PurchaseOrderId:VendorId со всеми элементами SubLineItem, связанными с комбинацией PurchaseOrderId:VendorId:
array(["23c03079-d06e-4c5e-bebc-bfcdbfeea635"] =>( //PurchaseOrderId, ["VendorId"]=> "24d84b89-ef9a-4347-95c0-d282fcf19b58" { ["SubLineItemId"]=> "e2a1b308-8895-41ce-9688-878c13b00c14"{ ["Количество"]=> int(40) ["SellPrice"]=> float(131) ["FreightSell"]=> float(0) ["NetPrice"]=> float(121.8375) ["FreightNet"]=> float(0) ["Налогооблагаемый"]=> bool(true) ["ProjectId"]=> "827c879c-8dd6-4738-85f8-c14da2c743b8" ["Total_Sell"]=> float(5240) ["PONumber"]=> "1211111-20 }, }, {["SubLineItemId"]=> .... // для каждого PurchaseOrderId:VendorID => SubLineItemId }, ], ... Следующий PurchaseOrderId...
Может быть множество PurchaseOrderId, VendorId, SubLineItemId и т. д. Я уверен, что в примерах у меня нет фигурных скобок - от этого у меня кружится голова.
Я пробовал array_merge и array_combine, используя foreach $arr_sublineitems/$arr_filtered_po, но без правильных результатов. Я пытаюсь зациклить и просто создать новый массив с правильными значениями, но у меня возникла проблема со сравнением PurchaseOrderId:VendorId по многочисленным элементам в массивах:
foreach ($arr_sublineitems как $item => $items) foreach($arr_filtered_po as $key => $value){ $po_id = ($items['PurchaseOrderId']); не установлено ($items['PurchaseOrderId']); $subline = $items['SubLineItemId']; не установлено ($items['SubLineItemId']); $arr_qbo[][$key][$subline] += $items; } }
У меня есть два массива, которые мне нужно объединить в новые массивы с ключами, взятыми из значений массива. Первый массив имеет SubLineItemId как Array(Key):
$arr_sublineitems { ["e2a1b308-8895-41ce-9688-878c13b00c14"]=> { ["PurchaseOrderId"]=> "23c03079-d06e-4c5e-bebc-bfcdbfeea635" // PurchaseOrderId:VendorId 1:N ["SubLineItemId"]=> "e2a1b308-8895-41ce-9688-878c13b00c14" // PurchaseOrderId:SublineItemId = 1:N ["VendorId"]=> "24d84b89-ef9a-4347-95c0-d282fcf19b58" // PurchaseOrderId:VendorId = 1:1 ["Количество"]=> int(40) ["SellPrice"]=> float(131) ["FreightSell"]=> float(0) ["NetPrice"]=> float(121.8375) ["FreightNet"]=> float(0) ["Налогооблагаемый"]=> bool(true) ["ProjectId"]=> "827c879c-8dd6-4738-85f8-c14da2c743b8" ["Total_Sell"]=> float(5240) } ...}
Второй массив имеет PurchaseOrderId как Array(Key):
$arr_filtered_po { ["23c03079-d06e-4c5e-bebc-bfcdbfeea635"]=> //PurchaseOrderId { ["VendorId"]=> "f9757947-18cc-4b2f-9c8d-722d5a4ba38c" //VendorId:PONumber = 1:N ["PONumber"]=> "1211111-20" // PONumber:VendorId = 1:1 } ... }
Желаемый результат группируется по PurchaseOrderId:VendorId со всеми элементами SubLineItem, связанными с комбинацией PurchaseOrderId:VendorId:
array(["23c03079-d06e-4c5e-bebc-bfcdbfeea635"] =>( //PurchaseOrderId, ["VendorId"]=> "24d84b89-ef9a-4347-95c0-d282fcf19b58" { ["SubLineItemId"]=> "e2a1b308-8895-41ce-9688-878c13b00c14"{ ["Количество"]=> int(40) ["SellPrice"]=> float(131) ["FreightSell"]=> float(0) ["NetPrice"]=> float(121.8375) ["FreightNet"]=> float(0) ["Налогооблагаемый"]=> bool(true) ["ProjectId"]=> "827c879c-8dd6-4738-85f8-c14da2c743b8" ["Total_Sell"]=> float(5240) ["PONumber"]=> "1211111-20 }, }, {["SubLineItemId"]=> .... // для каждого PurchaseOrderId:VendorID => SubLineItemId }, ], ... Следующий PurchaseOrderId...
Может быть множество PurchaseOrderId, VendorId, SubLineItemId и т. д. Я уверен, что в примерах у меня нет фигурных скобок - от этого у меня кружится голова.
Я пробовал array_merge и array_combine, используя foreach $arr_sublineitems/$arr_filtered_po, но без правильных результатов. Я пытаюсь зациклить и просто создать новый массив с правильными значениями, но у меня возникла проблема со сравнением PurchaseOrderId:VendorId по многочисленным элементам в массивах:
foreach ($arr_sublineitems как $item => $items) foreach($arr_filtered_po as $key => $value){ $po_id = ($items['PurchaseOrderId']); не установлено ($items['PurchaseOrderId']); $subline = $items['SubLineItemId']; не установлено ($items['SubLineItemId']); $arr_qbo[][$key][$subline] += $items; } }
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение