目前,根据以下代码,我的数据显示如下:
http://img27.imageshack.us/img27/8083/29769986.jpg
但我希望它显示如下:
http://img259.imageshack.us/img259/3233/24033830.jpg
显示的数据代码与第一张图像一样,是:
<div id="content">
<?php foreach ($categories as $category) { ?>
<div class="manufacturer-list">
<div class="manufacturer-heading"><?php echo $category['name']; ?><a id="<?php echo $category['name']; ?>"></a></div>
<div class="manufacturer-content">
<?php if ($category['manufacturer']) { ?>
<?php for ($i = 0; $i < count($category['manufacturer']);) { ?>
<ul>
<?php $j = $i + ceil(count($category['manufacturer']) / 4); ?>
<?php for (; $i < $j; $i++) { ?>
<?php if (isset($category['manufacturer'][$i])) { ?>
<li><a href="<?php echo $category['manufacturer'][$i]['href']; ?>"><?php echo $category['manufacturer'][$i]['name']; ?></a></li>
<?php } ?>
<?php } ?>
</ul>
<?php } ?>
<?php } ?>
</div>
</div>
<?php } ?>
</div>
为了获得“HTC”文本下的“Hewlett-Packard”文本,我已将“/ 4”更改为“/ 1”,但我不知道如何将数据显示到三列(如第二张图片),而不是现在的一列(如第一张图片所示)。
提前致谢。
编辑:我真正需要的是计算并对此代码进行计算:
<?php foreach ($categories as $category) { ?>
.
.
.
<?php } ?>
因此需要计算分类数,进行计算,并将代码分为三列。
答案 0 :(得分:1)
试试这个。
<div id="content">
<div class="content-column">
<?php
$cols = 3; // Change to columns needed.
$catcount = count($categories);
$catpercol = ceil($catcount / $cols);
$c = 0;
foreach ($categories as $category) {
if ( $c == $catpercol ) {
$c = 0;
print "</div><div class='content-column'>";
}
?>
<div class="manufacturer-list">
<div class="manufacturer-heading"><?php echo $category['name']; ?><a id="<?php echo $category['name']; ?>"></a></div>
<div class="manufacturer-content">
<?php if ($category['manufacturer']) { ?>
<?php for ($i = 0; $i < count($category['manufacturer']);) { ?>
<ul>
<?php $j = $i + ceil(count($category['manufacturer']) / 4); ?>
<?php for (; $i < $j; $i++) { ?>
<?php if (isset($category['manufacturer'][$i])) { ?>
<li><a href="<?php echo $category['manufacturer'][$i]['href']; ?>"><?php echo $category['manufacturer'][$i]['name']; ?></a></li>
<?php } ?>
<?php } ?>
</ul>
<?php } ?>
<?php } ?>
</div>
</div>
<?php $c++; } ?>
</div>
</div>
将.content-column { float: left; width: 33.33333%; }
添加到您的CSS。
详细说明:
$cols = 3;
可让您设置所需的列数(注意:您可能需要相应地更改CSS)。
$catcount = count($categories);
为您提供要渲染的类别总数。
$catpercol = ceil($catcount / $cols);
将总数均匀划分为所需的列数,最后一列的项目最终比其他列少。
$c = 0;
是你的反击。它在外部foreach循环结束时增加。
在循环内,检查$c
是否与$catpercol
号匹配,如果匹配,则关闭当前父div并创建新父div。您最终需要尽可能多的父div,因为您需要列。只需添加适当的CSS,使它们彼此显示。
答案 1 :(得分:0)
我认为可以通过html / css创建三个列布局,而无需更改PHP代码。只需使用float:left; width: 33%
即可。由于边距和边框,您还可以使用宽度属性的绝对值。
答案 2 :(得分:0)
了解以下代码,根据您的要求,代码只是根据您给定的屏幕截图提供您想要的提示http://img259.imageshack.us/img259/3233/24033830.jpg
echo "<table>";
echo "<tr>";
$i = 1;
do{
// column range
$range = 3;
echo "<td>" . $i;
if( $i % $range == 0 ){
echo "</tr>";
echo "<tr>";
}
echo "</td>";
$i++;
}while( $i <= 10 );
echo "</tr>";
echo "</table>";
希望这会对你有所帮助