我正在尝试将品牌菜单添加到电子商务网站(PHP MVC结构)中。我已成功设法获得输出,但问题是这是作为单个列表输出。
我的编码知识有限,所以我不确定如何将其分成多个列表。
我在这里读到的其他答案很相似,但它们不同,我仍然不确定如何继续。
这是控制器文件中的代码:
$this->load->model('catalog/manufacturer');
$this->data['manufacturers'] = array();
$results = $this->model_catalog_manufacturer->getManufacturers();
foreach ($results as $result) {
$this->data['manufacturers'][] = array(
'name' => $result['name'],
'href' => $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $result['manufacturer_id'])
);
}
这是模板文件中的代码:
<div class="brand">
<ul>
<?php foreach ($manufacturers as $manufacturer) { ?>
<li><a href="<?php echo $manufacturer['href']; ?>"><?php echo $manufacturer['name']; ?></a></li>
<?php } ?>
</ul>
</div>
有没有人能够建议应该添加哪些代码将HTML输出拆分为3个无序列表而不是1?
修改以进一步说明。
制造商按预期输出为单个无序列表。
像这样:
<ul>
<li>Manufacturer 1</li>
<li>Manufacturer 2</li>
<li>Manufacturer 3</li>
<li>Manufacturer 4</li>
<li>Manufacturer 5</li>
<li>Manufacturer 6</li>
<li>Manufacturer 7</li>
<li>Manufacturer 8</li>
<li>Manufacturer 9</li>
</ul>
我希望输出:
<ul>
<li>Manufacturer 1</li>
<li>Manufacturer 2</li>
<li>Manufacturer 3</li>
</ul>
<ul>
<li>Manufacturer 4</li>
<li>Manufacturer 5</li>
<li>Manufacturer 6</li>
</ul>
<ul>
<li>Manufacturer 7</li>
<li>Manufacturer 8</li>
<li>Manufacturer 9</li>
</ul>
总之,逻辑应该计算制造商的数量并将其除以预定数字(在这种情况下为3),然后输出三个具有相同数量子项的无序列表。
所以按照例子。有9家制造商产生了3个无序列表,每个列表中有3个孩子。
答案 0 :(得分:0)
您可以使用array_chunk
:https://secure.php.net/manual/en/function.array-chunk.php
你在这里做的是,你正在制作数组的块,这意味着你将数组分成x个部分。
<?php
foreach (array_chunk($manufacturers, 3, true) as $manufacturer) { ?>
<ul>
<?php foreach ($manufacturer as $value) { ?>
<li><?php echo $value['name']; ?></li>
<?php } ?>
</ul>
<?php } ?>
答案 1 :(得分:-1)
做print_r($ manufacturer)并看看你得到了什么