从PHP中的动态生成列表生成多个列

时间:2014-03-31 17:02:37

标签: php dynamic multiple-columns megamenu

我有一个生成UL LI语句的脚本,并创建一个列列表,现在我需要修改它而不是长列表,我将它分成几列,每列有10个元素,直到结束。

    for ($i=0;$i<sizeof($manufacturer_sidebox_array);$i++) {

  $content = '';
  $content .= '<li ><a class="hide" href="' . zen_href_link(FILENAME_DEFAULT,   'manufacturers_id=' . $manufacturer_sidebox_array[$i]['id']) . '">';
  $content .= $manufacturer_sidebox_array[$i]['text'];
  $content .= '</a></li>' . "\n";
  echo $content;
}

我想弄清楚的是如何以我可以创建列的方式插入一些if语句。

现在输出是:

Col1中

第一 第二 第三 第四 第五 第六 。 。 。 第二十个

我想要的是:

Col1 Col2 Col3 ... Col6

11月21日21日 。 。 。 10月20日30日

1 个答案:

答案 0 :(得分:0)

这会将数组分成十组,将每个组包装在column div中。请注意,我们在循环之前开始第一个div并在循环之后结束最后一个div。在10个条目中打破的关键部分是模数运算符 - % - 您可以阅读它in the PHP documentation

echo '<div class="menuColumn">';

for ($i=0; $i<count($manufacturer_sidebox_array); $i++) {

    if ($i % 10 == 0){
        echo '</div><div class="menuColumn">';
    }

    $content = '';
    $content .= '<li ><a class="hide" href="' . zen_href_link(FILENAME_DEFAULT,   'manufacturers_id=' . $manufacturer_sidebox_array[$i]['id']) . '">';
    $content .= $manufacturer_sidebox_array[$i]['text'];
    $content .= '</a></li>' . "\n";
    echo $content;

}

echo '</div>';

您还需要这种CSS样式,使列水平堆叠而不是默认的垂直堆叠。显然,您可以根据自己的喜好调整保证金:

<style>
.menuColumn{
    display:inline-block;
    margin:10px;
    vertical-align: text-top;
}
</style>