编辑:
在我自己,Kerrek SB和OP bswinnerton之间的评论中讨论之后,以下代码似乎是最有效的:
$columns = 3;
$rowcount = mysql_num_rows($query);
$rows = ceil($rowcount / $columns);
$rowdata = array_fill(0, $rows, "");
$ctr = 0;
while ($result = mysql_fetch_array($query))
$rowdata[$ctr++ % $rows] .= '
'.$result['name'].'';echo '
'.implode('',$rowdata).'';这将创建三个垂直填充的列(我的原始答案将创建三行).它还正确地初始化数组(防止PHP警告),为不能被列计数整除的结果计数产生正确的行计数,并且结合了Kerrek巧妙的“在下标中计算行”技巧.
原帖:
你可以使用数组和implode()这样,你只需要通过你的结果:
$row = 0;
$rows = 3;
$rowdata = array();
while($result = mysql_fetch_array($query))
{
if ($row >= $rows) $row = 0;
$rowdata[$row++] .= '
'.$result['name'].'';}
echo '
'.implode('',$rowdata).'';