well you could do something like:
<?
$myarray = array( 0 => array( 'year' => 2009, 'month' => "November", 'month_sales' => 524, 'year_totalsales' => 3610 ),
1 => array ( 'year' => 2009, 'month' => 'December', 'month_sales' => 521, 'year_totalsales' => 3610 ),
2 => array ( 'year' => 2010, 'month' => "January", 'month_sales' => 609, 'year_totalsales' => 3610 ));
$linewidth = 29; // Change to the width you want of course
$sep = "-"; // Change the seperator you want
$lastyear = "";
function pad($output, $length) {
global $sep;
$output = (string)$output;
while (strlen($output) < $length) {
$output .= $sep;
}
return $output;
}
foreach($myarray as $row) {
if ($row['year'] != $lastyear) {
echo pad($row['year'], $linewidth), PHP_EOL;
$lastyear = $row['year'];
}
echo pad($row['month'], $linewidth-strlen((string)$row['month_sales'])), $row['month_sales'], PHP_EOL;
}
?>
Of course you could add your own formatting or whatever if this isn't satisfactory.
Edit: tested, it works properly now.
Outputs:
2009-------------------------
November------------------524
December------------------521
2010-------------------------
January-------------------609
Edit this uses an HTML table instead:
<?
$myarray = array( 0 => array( 'year' => 2009, 'month' => "November", 'month_sales' => 524, 'year_totalsales' => 3610 ),
1 => array ( 'year' => 2009, 'month' => 'December', 'month_sales' => 521, 'year_totalsales' => 3610 ),
2 => array ( 'year' => 2010, 'month' => "January", 'month_sales' => 609, 'year_totalsales' => 3610 ));
$lastyear = "";
echo "<table><tr><th>Month</th><th>Sales</th></tr>", PHP_EOL;
foreach($myarray as $row) {
if ($row['year'] != $lastyear) {
echo "<tr><th colspan=2>", $row['year'], "</th></tr>", PHP_EOL;
$lastyear = $row['year'];
}
echo "<tr><td>", $row['month'], "</td><td>", $row['month_sales'], "</td></tr>", PHP_EOL;
}
echo "</table>", PHP_EOL;
?>
This outputs:
<table><tr><th>Month</th><th>Sales</th></tr>
<tr><th colspan=2>2009</th></tr>
<tr><td>November</td><td>524</td></tr>
<tr><td>December</td><td>521</td></tr>
<tr><th colspan=2>2010</th></tr>
<tr><td>January</td><td>609</td></tr>
</table>