3v4l.org

run code in 300+ PHP versions simultaneously
<?php //retrieved from database $kategorier = [ ['Kategori' => 'Burger'], ['Kategori' => 'Pizza'], ['Kategori' => 'Pizza2'], ['Kategori' => 'Pizza3'], ['Kategori' => 'Chinaboks'], ['Kategori' => 'Artiskok'], ['Kategori' => 'Durum'], ['Kategori' => 'Asiatisk'], ['Kategori' => 'Asiatisk2'], ['Kategori' => 'Asiatisk20'], ['Kategori' => 'Asiatisk3'], ]; $letters = []; if ($kategorier) { $kategorier = array_column($kategorier, 'Kategori'); //sort the resulting array as a human would natsort($kategorier); foreach ($kategorier as $kategori) { $k = strtoupper($kategori[0]); if (!isset($letters[$k])) { $letters[$k] = []; } $letters[$k][] = $kategori; } } ?> <table> <?php foreach($letters as $k => $kategorier) { ?> <tr> <td colspan="2"><h2><?php echo $k; ?></h2></td> </tr> <tr> <?php $l = count($kategorier); if ($l & 1) { $kategorier[] = ''; $l++; } $y = $l - 1; foreach ($kategorier as $i => $kategori) { ?> <td><?php echo $kategori; ?></td> <?php if ($i % 2 && $i !== $y) { ?></tr><tr><?php } ?> <?php } ?> </tr> <?php } ?> </table>
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 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.27, 8.4.1 - 8.4.14
<table> <tr> <td colspan="2"><h2>A</h2></td> </tr> <tr> <td>Artiskok</td> <td>Asiatisk</td> </tr><tr> <td>Asiatisk2</td> <td>Asiatisk3</td> </tr><tr> <td>Asiatisk20</td> <td></td> </tr> <tr> <td colspan="2"><h2>B</h2></td> </tr> <tr> <td>Burger</td> <td></td> </tr> <tr> <td colspan="2"><h2>C</h2></td> </tr> <tr> <td>Chinaboks</td> <td></td> </tr> <tr> <td colspan="2"><h2>D</h2></td> </tr> <tr> <td>Durum</td> <td></td> </tr> <tr> <td colspan="2"><h2>P</h2></td> </tr> <tr> <td>Pizza</td> <td>Pizza2</td> </tr><tr> <td>Pizza3</td> <td></td> </tr> </table>

preferences:
138.13 ms | 413 KiB | 5 Q