3v4l.org

run code in 300+ PHP versions simultaneously
<?php $myarray = [ [ 'messageId' => '5ACE9D8841', 'sender' => 'john@doe.com' ], [ 'messageId' => '7EE67D8170', 'sender' => 'dan@doe.com' ], [ 'messageId' => '8095FD8836', 'sender' => 'cat@doe.com' ], [ 'messageId' => '7EE67D8170', 'dest' => 'mitch@doe.com', 'status' => 'sent', 'date' => '2021-02-01 11:06:55' ] ]; $result = []; foreach ($myarray as $row) { if (!isset($result[$row['messageId']])) { $result[$row['messageId']] = $row; } else { $result[$row['messageId']] += $row; } } var_export(array_values($result));
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
array ( 0 => array ( 'messageId' => '5ACE9D8841', 'sender' => 'john@doe.com', ), 1 => array ( 'messageId' => '7EE67D8170', 'sender' => 'dan@doe.com', 'dest' => 'mitch@doe.com', 'status' => 'sent', 'date' => '2021-02-01 11:06:55', ), 2 => array ( 'messageId' => '8095FD8836', 'sender' => 'cat@doe.com', ), )

preferences:
105.4 ms | 407 KiB | 5 Q