目前,我从MySQL中获取数据如下:
$catmapper = new Application_Model_Mapper_BusinessCategoryMapper();
$result = $catmapper->getBusinessCategory();
我使用 for
迭代上面的结果循环到 <li>
标记如下:
$mcat = "<ul>";
for($i=0; $i<count($result); $i++){
$mcat = $mcat . "<li class='refinecategory'><a id='refine_category_0_0' class='browse-category' href='/business/searchreviews?mct=active' rel='active'>".$result[$i]['cat_name']."</a></li>";
}
$mcat = $mcat . "</ul>";
但这会在 ul
中生成一个巨大的列表标签。我怎样才能把上面的语句分成多个 ul
标签?在每个 ul
内我只需要 5 li
标签,如果超过另一个 ul
将生成并添加下一个 li
进入其中。
最佳答案
当 $i
像这样被 5 整除时,我会“倾听”:
$mcat = "<ul>";
for($i=0; $i<count($result); $i++){
if ($i % 5 == 0 && $i > 0) {
$mcat .= "</ul><ul>";
}
$mcat .= "<li class='refinecategory'><a id='refine_category_0_0' class='browse-category' href='/business/searchreviews?mct=active' rel='active'>".$result[$i]['cat_name']."</a></li>";
}
if ($i % 5 != 0) {
$mcat .= "</ul>";
}
这应该会导致您的列表每 5 个元素拆分一次。我还没有测试过它,所以如果你碰巧得到一个额外的列表,当你有一个可以被 5 整除的元素时,你应该做 if (($i-1) % 5 != 0) {
用于最后一个 if
语句。
关于php迭代ul分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263080/