php strange behavior while changing value -
having snippet buffering events. $temp = array(); while ($row = $source) { $temp[] = $row; // `add_day` means how many of next days add buffer $d = new datetime($row->date); ($i = 0; $i < $row->add_day; $i++) { $d->modify('+1 day'); $row->date = $d->format('y-m-d'); $temp[] = $row; // print_r($row) --> it's ok. `date` has proper value. } } while tracking single event, seems fine. in result - $temp array, rows forcycle have same date value. (the last one.) e.g. $data = { date: '2015-07-01', add_day: 2 } result: $temp[0] = { date: '2015-07-03'} $temp[1] = { date: '2015-07-03'} $temp[2] = { date: '2015-07-03'} where doing mistake?? you keep overwriting value date in object. since array has references same object return same value. for ($i = 0; $i < $row->add_day; $i++) { $d->modify('+1 day'); ...