Есть такой код:
$sorted = [];
foreach ($elements as $element_index => $element) {
foreach ($element->locations as $location_index => $location) {
$to_push = $element;
if ($to_push->field_type === 1 or $to_push->field_type === 2 or $to_push->field_type === 4 or $to_push->field_type === 8) {
$to_push->text_format = $location->text_format;
}
$to_push->position = $location->position;
$sorted[$to_push->position->page][] = $to_push;
}
}
$elements это модель Eloquent
Проблема в том, что
$sorted[$to_push->position->page][] = $to_push;
И вот например у нас есть две итерации для $element->locations у которых номер страницы будет одинаковый
Тогда в массиве у нас будет два одинаковых элемента равных последней итерации.
Поведение очень странное, не могу понять из-за чего так происходит, уже задолбался обкладываться дампами со всех сторон. Внутри итераций действительно разные значение, а в $sorted одинаковые.