<?php
$resultObject = [
['name' => 'Tom', 'value' => 15, 'year' => 2018],
['name' => 'Tom', 'value' => 4, 'year' => 2019],
['name' => 'Tom', 'value' => 6, 'year' => 2020],
['name' => 'Kate', 'value' => 18, 'year' => 2018],
['name' => 'Kate', 'value' => 20, 'year' => 2019],
];
$grouped = [];
$columns = [];
foreach ($resultObject as $row) {
$grouped[$row['name']][$row['year']] = $row['value'];
$columns[$row['year']] = $row['year'];
}
sort($columns);
$defaults = array_fill_keys($columns, '-');
array_unshift($columns, 'name');
echo "<table>\n";
printf(
"<tr><th>%s</th></tr>\n",
implode('</th><th>', $columns)
);
foreach ($grouped as $name => $records) {
printf(
"<tr><td>%s</td><td>%s</td></tr>\n",
$name,
implode('</td><td>', array_replace($defaults, $records))
);
}
echo "</table>";
- Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
- <table>
<tr><th>name</th><th>2018</th><th>2019</th><th>2020</th></tr>
<tr><td>Tom</td><td>15</td><td>4</td><td>6</td></tr>
<tr><td>Kate</td><td>18</td><td>20</td><td>-</td></tr>
</table>
preferences:
111.97 ms | 408 KiB | 5 Q