3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = array( 0 => array('id' => 8, 'month' => 1, 'cost' => 12500), 1 => array('id' => 8, 'month' => 2, 'cost' => 14200), 2 => array('id' => 9, 'month' => 1, 'cost' => 23000), 3 => array('id' => 9, 'month' => 2, 'cost' => 18000), ); $by_id = []; foreach($data as $x) { $by_id[$x['id']][$x['month']] = $x['cost']; // e.g. $by_id[8][2] = 14200; } $html = []; $html[] = '<table>'; $html[] = '<tr><th>ID</th><th>Jan</th><th>Feb</th></tr>'; foreach($by_id as $id => $months) { $html[] = '<tr>'; $html[] = "<td>{$id}</td>"; foreach($months as $month => $cost) { $html[] = "<td>{$cost}</td>"; } $html[] = '</tr>'; } $html[] = '</table>'; echo implode("\n", $html);
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.18, 8.5.0 - 8.5.3
<table> <tr><th>ID</th><th>Jan</th><th>Feb</th></tr> <tr> <td>8</td> <td>12500</td> <td>14200</td> </tr> <tr> <td>9</td> <td>23000</td> <td>18000</td> </tr> </table>

preferences:
82.67 ms | 1274 KiB | 4 Q