I need to merge the row data of my 2d array where rows share the same messageID value.
$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'
    ]
];
From the sample data, rows [1] and [3] are merged into [1] because they share the same [messageId]. Expected result:
Array
(
    [0] => Array
        (
            [messageId] => 5ACE9D8841
            [sender] => john@doe.com
        )
    [1] => Array
        (
            [messageId] => 7EE67D8170
            [dest] => mitch@doe.com
            [status] => sent
            [date] => 2021-02-01 11:06:55
            [sender] => dan@doe.com
        )
    [2] => Array
        (
            [messageId] => 8095FD8836
            [sender] => cat@doe.com
        )
)
I don't mind about the key index or the order.
EDIT : I've tried array_merge, array_merge_recursive and many others. Best result was obtained with
$result_arr = array();
foreach ($myarray as $sub_arr) {
    $result_arr = array_merge($result_arr, $sub_arr);
    $result_arr = array_unique($result_arr);
} 
It works but returns only the last iteration:
Array (
    [messageId] => 7EE67D8170
    [dest] => mitch@doe.com
    [status] => sent
    [date] => 2021-02-01 11:06:55
    [sender] => dan@doe.com
)
 
     
    