3v4l.org

run code in 300+ PHP versions simultaneously
<?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