3v4l.org

run code in 300+ PHP versions simultaneously
<?php $array=[ ['invoice_id'=>'WUI_588','email'=>'abc@hotmail.com'], ['invoice_id'=>'WUI_588','email'=>'def@hotmail.com'], ['invoice_id'=>'WUI_589','email'=>'ninja@hotmail.com'], ['invoice_id'=>'WUI_589','email'=>'ghi@hotmail.com'], ['invoice_id'=>'WUI_590','email'=>'123@hotmail.com'], ['invoice_id'=>'WUI_590','email'=>'123@hotmail.com'], ['invoice_id'=>'WUI_591','email'=>'456@hotmail.com'], ['invoice_id'=>'WUI_591','email'=>'456@hotmail.com'] ]; foreach($array as $row){ // iterate all rows if(!isset($result[$row['invoice_id']])){ // if first occurrence of invoice_id... $result[$row['invoice_id']]=$row; // save the full row with invoice_id as the temporary key }else{ // if not the first occurrence of invoice_id... $result[$row['invoice_id']]['email'].=", {$row['email']}"; // concatenate the email value } } var_export(array_values($result));

preferences:
27.46 ms | 404 KiB | 5 Q