Разделить данные на 3 столбца

У меня есть таблица MySQL, содержащая имена людей. Используя PHP, как лучше всего делить эти имена и отобразить их в 3 столбцах.

Этого можно достичь с помощью таблицы HTML, но можно ли это сделать, используя только <div> ?

Я слышал, что это можно сделать с помощью оператора%. Будет ли это лучшим способом и как это будет сделано?

Solutions Collecting From Web of "Разделить данные на 3 столбца"

Вы можете сделать это, используя оператор модуля, однако на самом деле это возможно только с помощью CSS.

Используя display: inline-block , вы можете получить хороший эффект столбца. Взгляните на этот JSFiddle здесь . Я использую только JavaScript, потому что я ленив; список <div> будет создан PHP в вашем случае. Если вы хотите ограничить их определенной шириной, просто поместите их в контейнер <div> с фиксированной шириной.


Я придумал решение с использованием таблиц, которое действительно то, что вы должны делать (вы не делали особых случаев использования). Ниже приведен код, а также рабочая демонстрация.

 $columns = 4; // The number of columns you want. echo "<table>"; // Open the table // Main printing loop. change `30` to however many pieces of data you have for($i = 0; $i < 30; $i++) { // If we've reached the end of a row, close it and start another if(!($i % $columns)) { if($i > 0) { echo "</tr>"; // Close the row above this if it's not the first row } echo "<tr>"; // Start a new row } echo "<td>Cell</td>"; // Add a cell and your content } // Close the last row, and the table echo "</tr> </table>"; 

И чтобы закончить, у нас есть ориентированный на колонку макет, на этот раз возвращающийся к div s. Здесь есть CSS; это должно быть помещено в отдельный файл, а не влево .

 <?php $rows = 10; // The number of columns you want. $numItems = 30; // Number of rows in each column // Open the first div. PLEASE put the CSS in a .css file; inline used for brevity echo "<div style=\"width: 150px; display: inline-block\">"; // Main printing loop. for($i = 0; $i < $numItems; $i++) { // If we've reached our last row, move over to a new div if(!($i % $rows) && $i > 0) { echo "</div><div style=\"width: 150px; display: inline-block\">"; } echo "<div>Cell $i</div>"; // Add a cell and your content } // Close the last div echo "</div>"; ?>