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 git.master, git.master_jit, rfc.property-hooks
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 ) ) )

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
30.34 ms | 407 KiB | 5 Q