使用排序array_chunk

I'm trying to generate a table of years that is split into groups of 5 years each. i would like it to be sort 5 years each like in the example desired output ...This is what I got so far.

    <?php
  $chunkSize = 5;
  $starting_year  = 2006;
  $ending_year    = date("Y");
  //create an array of years
  $years = range($ending_year,$starting_year); 
  //[2006,2007,....,2016,2017]

  //split years in required size
  $chunked = array_chunk($years,$chunkSize);
  //[ [2013,....,2017], [2008,...2012], [2006,2007]]



  echo "<table class='table table-striped table-bordered'><tbody>";
  foreach($chunked as $chunk) {
    echo "<tr>";
    foreach($chunk as $year) {
      echo "<th>{$year}</th>";
    }
    echo "</tr><tr>";
    foreach($chunk as $year) {

      echo "<td>test</td>";
    }
    echo "</tr>";
  }
  echo "</tbody></table>";

Current Output

2017    2016    2015    2014    2013
test    test    test    test    test
2012    2011    2010    2009    2008
test    test    test    test    test
2007    2006
test    test

Desired Output

2013    2014    2015    2016    2017
test    test    test    test    test
2008    2009    2010    2011    2012
test    test    test    test    test
2006    2007
test    test

edit:

i tried

<?php
  $chunkSize = 5;
  $starting_year  = 2006;
  $ending_year    = date("Y");
  //create an array of years
  $years = range($ending_year,$starting_year); 
  //[2006,2007,....,2016,2017]

  //split years in required size
  $chunked = array_chunk($years,$chunkSize);
  //[ [2013,....,2017], [2008,...2012], [2006,2007]]


  //reverse it
  $reversed = array_reverse($chunked); 


  echo "<table class='table table-striped table-bordered'><tbody>";
  foreach($reversed as $reverse) {
    echo "<tr>";
    foreach($reverse as $year) {
      echo "<th>{$year}</th>";
    }
    echo "</tr><tr>";
    foreach($reverse as $year) {

      echo "<td>test</td>";
    }
    echo "</tr>";
  }
  echo "</tbody></table>";

output

2007    2006
test    test
2012    2011    2010    2009    2008
test    test    test    test    test
2017    2016    2015    2014    2013
test    test    test    test    test
 <?php
  $chunkSize = 5;
  $starting_year  = 2006;
  $ending_year    = date("Y");
  //create an array of years
  $years = range($ending_year,$starting_year); 
  //[2006,2007,....,2016,2017]

  //split years in required size
  $chunked = array_chunk($years,$chunkSize);
  //[ [2013,....,2017], [2008,...2012], [2006,2007]]



  echo "<table class='table table-striped table-bordered'><tbody>";
  foreach($chunked as $chunk) {
 $chunk = array_reverse($chunk);
    echo "<tr>";

    foreach($chunk as $year) {

      echo "<th>{$year}</th>";
    }
    echo "</tr><tr>";
    foreach($chunk as $year) {

      echo "<td>test</td>";
    }
    echo "</tr>";
  }
  echo "</tbody></table>";

Not that this way is any better necessarily, but just FYI you can do this without any arrays or chunking or reversing. Starting with your initially defined values:

$chunkSize = 5;
$starting_year  = 2006;
$ending_year    = date("Y");

Determine how many rows you'll need

$rows = ceil(($ending_year - $starting_year) / $chunkSize);

Then iterate for that number of rows with a for loop.

for ($i = 0; $i < $rows; $i++) {

    // determine the starting year for the current row
    $start = max($starting_year, $ending_year - $chunkSize + 1);

    // output the th and td rows for each row
    for ($td = 0; $td < 2; $td++) {

        // output the years  and 'test' values for the current row
        echo '<tr>';
        for ($year = $start; $year <= $ending_year; $year++) {
            echo  $td ? '<td>test</td>' : "<th>$year</th>";
        }
        echo '</tr>';
    }

    // decrement the ending year for the next iteration
    $ending_year -= $chunkSize;
}