Ошибка при добавлении в 2d массив или циклический переход по 2d массиву

У меня есть проблема в этом коде:

while ($end <= $to){
        $currentDates = array("from" => $start, "to"=>$end);
        $allDates[] = $currentDates;
        echo 'from: ', $currentDates["from"]->format("m-d-y"),'<br>';
        unset($currentDates);
        $start->add($intervalObj);
        $end->add($intervalObj);
    }

var_dump($allDates);

эхо в цикле показывает правильные значения, но vardump показывает последние даты, которые будут добавлены в массив во всех позициях массива

 Casey15 окт. 2012 г., 18:59
Когда я говорю, что получаю то же самое, я имею в виду, что массив заполнен одной и той же датой, повторяемой снова и снова.
 GBD15 окт. 2012 г., 18:46
что вы получите, если var_dump ($ allDates) перед foreach?
 Casey15 окт. 2012 г., 18:49
хорошая идея. Я получаю то же самое, что и в цикле foreach. Так что проблема в цикле while.
 Casey15 окт. 2012 г., 18:44
Это функция, которая берет начальный и конечный объекты DateTime, тип интервала и сумму интервала и возвращает массив объектов DateTime на основе этих критериев.
 Baba15 окт. 2012 г., 18:40
Могу ли я спросить, какова цель цикла? Вы пытаетесь извлечь даты из заданного диапазона

Ответы на вопрос(1)

Ошибка из вашего цикла

while ($end <= $to){
                ^-------  This was never used

Также см

$currentDates = array("from" => $start, "to"=>$end);
         Not in the Condition  --^              ^---- To means something else 

Вы пока можете быть так же просты, как

$start = new DateTime("2012-4-12");
$end = new DateTime("2012-12-12");
$dv = new DateInterval('P24D'); // Every 24 days

echo "<pre>";
while ( $start <= $end ) {
    echo "From ", $start->format('Y-m-d');
    $start->add($dv);
    echo " To ", $start->format('Y-m-d'), PHP_EOL;
}

Выход

From 2012-04-12 To 2012-05-06
From 2012-05-06 To 2012-05-30
From 2012-05-30 To 2012-06-23
From 2012-06-23 To 2012-07-17
From 2012-07-17 To 2012-08-10
From 2012-08-10 To 2012-09-03
From 2012-09-03 To 2012-09-27
From 2012-09-27 To 2012-10-21
From 2012-10-21 To 2012-11-14
From 2012-11-14 To 2012-12-08
From 2012-12-08 To 2013-01-01
 Baba15 окт. 2012 г., 19:15
Хорошо, что это вы можете увидеть, что вы сделали не так ?? или вам все еще нужна помощь @Casey
 Baba15 окт. 2012 г., 19:05
@ GBD спасибо .... :)
 GBD15 окт. 2012 г., 19:04
+1 да снова @Baba
 Baba15 окт. 2012 г., 19:15
Или было бы неплохо иметь полную функцию и как вы ее называете .....
 Casey15 окт. 2012 г., 19:11
Эхо только для устранения проблемы. $ To используется ранее в функции. Эта функция принимает тип интервала даты начала и конца даты и сумму интервала и возвращает массив объектов DateTime на основе предоставленной информации. Эхо в цикле while показывает правильные даты, но когда я выкидываю массив $ allDates, он показывает последнюю дату, добавленную для всех позиций в массиве.

Ваш ответ на вопрос