PHP loop through months array PHP loop through months array arrays arrays

PHP loop through months array


$months = array();for ($i = 0; $i < 8; $i++) {    $timestamp = mktime(0, 0, 0, date('n') - $i, 1);    $months[date('n', $timestamp)] = date('F', $timestamp);}

Alternative for "custom" month names:

$months = array(1 => 'Jan.', 2 => 'Feb.', 3 => 'Mar.', 4 => 'Apr.', 5 => 'May', 6 => 'Jun.', 7 => 'Jul.', 8 => 'Aug.', 9 => 'Sep.', 10 => 'Oct.', 11 => 'Nov.', 12 => 'Dec.');$transposed = array_slice($months, date('n'), 12, true) + array_slice($months, 0, date('n'), true);$last8 = array_reverse(array_slice($transposed, -8, 12, true), true);

To output an array of such months as dropdown is as simple as:

<select name="month">    <?php        foreach ($months as $num => $name) {            printf('<option value="%u">%s</option>', $num, $name);        }    ?></select>


If you need to print like select box options, try using this:

for($i=1;$i<13;$i++)print("<option>".date('F',strtotime('01.'.$i.'.2001'))."</option>");


$months = array(    'January',    'February',    'March',    'April',    'May',    'June',    'July ',    'August',    'September',    'October',    'November',    'December',);$current = date('F');$start = array_search($current, $months);$toshow = array();$total = 0;for($i = $start; $total < 8; $i--){    if($i == 0)    {        $i = 12;    }    $toshow[] = $months[$i];    $total++;}var_dump($toshow);

Give that a shot, just dump out $toshow to your HTML.