點樣可以reverse order loop thru 一個dateperiod php object ?

有start, end date, 然後列出兩個日期之間的每個月
用dateperiod 就很容易做到

但出來的結果是由遠至近。我需要由近至遠來進一步處理

咁樣我同foreach 來loop thru, push 落另一個array, 然後用array_reverse() 來調轉order
  1. <?php

  2. $out = "
  3. <h3>Archive</h3>
  4. ";
  5. $start    = new DateTime('2010-01-01');
  6. $end      = new DateTime('2015-02-01');
  7. $interval = DateInterval::createFromDateString('1 month');
  8. $period   = new DatePeriod($start, $interval, $end);

  9. $a = array();
  10. foreach ($period as $dt) {
  11.     array_push($a, $dt);
  12. }
  13.   $a = array_reverse($a);

  14. foreach ($a as $dt) {
  15.     $d = $dt->format("Y-m-d");
  16.     $nextmonth = date('Y-m-d', strtotime('+1 month', strtotime($d)));
  17.     $count = count($pages->find("template=post, post_date>=$d, post_date<$nextmonth"));
  18.     if ($count > 0) {
  19.         $out .= "<a href='{$pages->get('template=home')->url}" . date('Y', strtotime($d)) . "/" . date('m', strtotime($d)) . "'>" . date('M Y', strtotime($d)) . " (" . $count . ")" . "</a><br/>";
  20.     }
  21.    
  22. }
  23. echo $out;
複製代碼
有冇更好的方法呢?