Есть массив "движений" элементов, примерно такой, только может быть в разы больше:
Исходный массивArray
(
[0] => Array
(
[id] => 90415
[oldDate] => 2024-08-27
[newDate] => 2024-08-28
)
[1] => Array
(
[id] => 90415
[oldDate] => 2024-08-28
[newDate] => 2024-08-27
)
[2] => Array
(
[id] => 90409
[oldDate] => 2024-08-21
[newDate] => 2024-08-22
)
[3] => Array
(
[id] => 90409
[oldDate] => 2024-08-22
[newDate] => 2024-08-23
)
)
Пытаюсь сделать так, чтоб удалились все промежуточные движения элемента, остались только
начальное и
конечное, и удалились элементы массива, где элемент вернули в исходное положение (0 и 1 элементы массива). В конечном итоге обработанный массив должен выглядеть так:
Измененный массивArray
(
[0] => Array
(
[id] => 90409
[oldDate] => 2024-08-21
[newDate] => 2024-08-23
)
)
Есть предположение, что нужно пройтись по всем элементам массива с одинаковым ID и работать уже по ним.
Если кратко сформулировать вопросы, то:
1) Как понять, что у элемента newDate последняя, и удалить все остальные элементы, оставив 2 значения
2) Как удалить только элементы с противоположными oldDate и newDate, оставив при этом другие с одинаковым ID