У меня есть такой многомерный массив, мне нужно объединить подмассивы с одинаковым значением messageID.
$myarray = Array (
[0] => Array
(
[messageId] => 5ACE9D8841
[sender] => [email protected]
)
[1] => Array
(
[messageId] => 7EE67D8170
[sender] => [email protected]
)
[2] => Array
(
[messageId] => 8095FD8836
[sender] => [email protected]
)
[3] => Array
(
[messageId] => 7EE67D8170
[dest] => [email protected]
[status] => sent
[date] => 2021-02-01 11:06:55
)
);
Ожидаемый результат, [1] и [3] объединяются в [1], поскольку они имеют один и тот же [messageId]:
Array
(
[0] => Array
(
[messageId] => 5ACE9D8841
[sender] => [email protected]
)
[1] => Array
(
[messageId] => 7EE67D8170
[dest] => [email protected]
[status] => sent
[date] => 2021-02-01 11:06:55
[sender] => [email protected]
)
[2] => Array
(
[messageId] => 8095FD8836
[sender] => [email protected]
)
)
Я не возражаю против ключевого индекса или порядка.
РЕДАКТИРОВАТЬ: я пробовал array_merge, array_merge_recursive и многие другие. Наилучший результат был получен с
foreach ($myarray as $sub_arr) {
$result_arr = array_merge($result_arr, $sub_arr);
$result_arr = array_unique($result_arr);
}
Он работает, но возвращает только последнюю итерацию:
Array
(
[messageId] => 7EE67D8170
[dest] => [email protected]
[status] => sent
[date] => 2021-02-01 11:06:55
[sender] => [email protected]
)
С Уважением