It seems that weekly_report_dm->getProjectHours($options)
returns reference to same private (?) property , which changes each call. You can try to clone the result with clone
:
$data[$i]->data->proj_hours = clone $weekly_report_dm->getProjectHours($options);
Changing getProjectHours
to not return reference would be the right solution