<?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