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);

preferences:
27.19 ms | 405 KiB | 5 Q