3v4l.org

run code in 300+ PHP versions simultaneously
<?php $randomInvoices = [ [ "name" => "studio", "client_id" => 111, "invoice" => 1233, "email" => 'studio@studio.com.br' ], [ "name" => "italiano", "client_id" => 222, "invoice" => 6775, "email" => 'italiano@italia.com' ], [ "name" => "studio", "client_id" => 111, "invoice" => 577, "email" => 'studio@studio.com.br' ], [ "name" => "italiano", "client_id" => 222, "invoice" => 677543, "email" => 'italiano@italia.com' ], ]; $invoicesByClient = []; foreach ($randomInvoices as $value) { $clientId = $value['client_id']; if (!isset($invoicesByClient[$clientId])) { $invoicesByClient[$clientId] = [ "name" => $value['name'], "client_id" => $clientId, "email" => $value['email'], 'invoices' => [], ]; } $invoicesByClient[$clientId]['invoices'][] = $value['invoice']; } // use `array_values` to get 0-indexed array $invoicesByClient = array_values($invoicesByClient); print_r($invoicesByClient);
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 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 ( [name] => studio [client_id] => 111 [email] => studio@studio.com.br [invoices] => Array ( [0] => 1233 [1] => 577 ) ) [1] => Array ( [name] => italiano [client_id] => 222 [email] => italiano@italia.com [invoices] => Array ( [0] => 6775 [1] => 677543 ) ) )

preferences:
150.55 ms | 409 KiB | 5 Q