3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
x = SELECT t.titulo as categoria, tb2.titulo as produto FROM categoria LEFT JOIN tb2 ON tb2.id_cat = categoria.id ORDER BY t.titulo ASC <?php $x = array( array('categoria' => 'cat1', 'titulo' => 'prod1'), array('categoria' => 'cat1', 'titulo' => 'prod2'), array('categoria' => 'cat2', 'titulo' => 'prod3'), array('categoria' => 'cat3', 'titulo' => NULL) ); ?> <div class="wrapper"> <?php $previousCat = ''; foreach($x as $produto){ if ($previousCat != $produto['categoria']){ if ($previousCat != '') echo "</div>"; echo "<div class='cell'><h1>" . $produto['categoria'] . "</h1>"; $previousCat = $produto['categoria']; } echo "<span>" . $produto['titulo'] . "</span>"; } if ($previousCat != '') echo "</div>"; ?> </div> <style> .wrapper{ display: table; } .cell { display: table-cell; border: 1px solid red; padding: 10px; text-align: center; } .cell span { display: block; } </style>
Output for 5.6.0 - 5.6.30, hhvm-3.12.14 - 3.17.3, 7.0.0 - 7.3.0rc2
x = SELECT t.titulo as categoria, tb2.titulo as produto FROM categoria LEFT JOIN tb2 ON tb2.id_cat = categoria.id ORDER BY t.titulo ASC <div class="wrapper"> <div class='cell'><h1>cat1</h1><span>prod1</span><span>prod2</span></div><div class='cell'><h1>cat2</h1><span>prod3</span></div><div class='cell'><h1>cat3</h1><span></span></div></div> <style> .wrapper{ display: table; } .cell { display: table-cell; border: 1px solid red; padding: 10px; text-align: center; } .cell span { display: block; } </style>