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