<?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));
- Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- array (
0 =>
(object) array(
'expense_id' => 475,
'expense_name' => 'DRAY',
'expense_unit_cost' => 270.0,
'expense_taxes' =>
array (
0 =>
(object) array(
'waybill_id' => 20005044,
'expense_id' => 475,
'tax_select' => 'tax1',
'tax_id' => 1,
'tax_name' => 'GST 5%',
'tax_no' => NULL,
'tax_value' => 13.5,
),
1 =>
(object) array(
'waybill_id' => 20005044,
'expense_id' => 475,
'tax_select' => 'tax2',
'tax_id' => 2,
'tax_name' => 'QST 9.975%',
'tax_no' => NULL,
'tax_value' => 26.9325,
),
),
),
1 =>
(object) array(
'expense_id' => 476,
'expense_name' => 'FUEL',
'expense_unit_cost' => 32.4,
'expense_taxes' =>
array (
0 =>
(object) array(
'waybill_id' => 20005044,
'expense_id' => 476,
'tax_select' => 'tax1',
'tax_id' => 1,
'tax_name' => 'GST 5%',
'tax_no' => NULL,
'tax_value' => 1.62,
),
1 =>
(object) array(
'waybill_id' => 20005044,
'expense_id' => 476,
'tax_select' => 'tax2',
'tax_id' => 2,
'tax_name' => 'QST 9.975%',
'tax_no' => NULL,
'tax_value' => 3.2319,
),
),
),
)
preferences:
150.27 ms | 405 KiB | 121 Q