<?php
$array1 = [
(object) [
'expense_id' => 475,
'expense_name' => 'DRAY',
'expense_unit_cost' => 270.00
],
(object) [
'expense_id' => 476,
'expense_name' => 'FUEL',
'expense_unit_cost' => 32.40
],
];
$array2 = [
(object) [
'waybill_id' => 20005044,
'expense_id' => 475,
'tax_select' => 'tax1',
'tax_id' => 1,
'tax_name' => 'GST 5%',
'tax_no' => null,
'tax_value' => 13.5000
],
(object) [
'waybill_id' => 20005044,
'expense_id' => 475,
'tax_select' => 'tax2',
'tax_id' => 2,
'tax_name' => 'QST 9.975%',
'tax_no' => null,
'tax_value' => 26.9325
],
(object) [
'waybill_id' => 20005044,
'expense_id' => 476,
'tax_select' => 'tax1',
'tax_id' => 1,
'tax_name' => 'GST 5%',
'tax_no' => null,
'tax_value' => 1.6200
],
(object) [
'waybill_id' => 20005044,
'expense_id' => 476,
'tax_select' => 'tax2',
'tax_id' => 2,
'tax_name' => 'QST 9.975%',
'tax_no' => null,
'tax_value' => 3.2319
],
];
$array1 = array_column($array1, null, 'expense_id');
foreach ($array2 as $obj) {
if (isset($array1[$obj->expense_id])) {
$array1[$obj->expense_id]->expense_taxes[] = $obj;
}
}
var_export(array_values($array1));
preferences:
36.99 ms | 402 KiB | 5 Q