3v4l.org

run code in 300+ PHP versions simultaneously
<?php $item = array ( 0 => array ( 'invoice_id' => '72,', 'item' => 'SN00001' ), 1 => array ( 'invoice_id' => '73,', 'item' => 'SN00002' ), 2 => array ( 'invoice_id' => '73,', 'item' => 'SN00003' ), 3 => array ( 'invoice_id' => '73,', 'item' => 'SN00004' ), 4 => array ( 'invoice_id' => '74,', 'item' => 'SN00005' ), 5 => array ( 'invoice_id' => '74,', 'item' => 'SN00006' ) ); $items = array_map(function ($inv_id) use ($item) { return array('invoice_id' => $inv_id, 'group' => array_filter($item, function ($itm) use ($inv_id) { return $itm['invoice_id'] == $inv_id; }) ); }, array_unique(array_column($item, 'invoice_id')) ); print_r($items); $items = array_values(array_map(function ($inv_id) use ($item) { return array('invoice_id' => $inv_id, 'group' => array_values(array_filter($item, function ($itm) use ($inv_id) { return $itm['invoice_id'] == $inv_id; })) ); }, array_unique(array_column($item, 'invoice_id')) )); print_r($items);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
Array ( [0] => Array ( [invoice_id] => 72, [group] => Array ( [0] => Array ( [invoice_id] => 72, [item] => SN00001 ) ) ) [1] => Array ( [invoice_id] => 73, [group] => Array ( [1] => Array ( [invoice_id] => 73, [item] => SN00002 ) [2] => Array ( [invoice_id] => 73, [item] => SN00003 ) [3] => Array ( [invoice_id] => 73, [item] => SN00004 ) ) ) [4] => Array ( [invoice_id] => 74, [group] => Array ( [4] => Array ( [invoice_id] => 74, [item] => SN00005 ) [5] => Array ( [invoice_id] => 74, [item] => SN00006 ) ) ) ) Array ( [0] => Array ( [invoice_id] => 72, [group] => Array ( [0] => Array ( [invoice_id] => 72, [item] => SN00001 ) ) ) [1] => Array ( [invoice_id] => 73, [group] => Array ( [0] => Array ( [invoice_id] => 73, [item] => SN00002 ) [1] => Array ( [invoice_id] => 73, [item] => SN00003 ) [2] => Array ( [invoice_id] => 73, [item] => SN00004 ) ) ) [2] => Array ( [invoice_id] => 74, [group] => Array ( [0] => Array ( [invoice_id] => 74, [item] => SN00005 ) [1] => Array ( [invoice_id] => 74, [item] => SN00006 ) ) ) )

preferences:
115.8 ms | 417 KiB | 5 Q