目前,我从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标签,如果超过5个,另一个ul将生成下一个li并添加到其中。
发布于 2013-03-07 12:32:31
我会“倾听”$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语句执行if (($i-1) % 5 != 0) {。
发布于 2013-03-07 12:33:20
尝试使用MOD运算符在循环的每5次迭代中执行一些特殊的操作。
$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>";
if($i % 5){
$mcat = $mcat . "</ul><ul>";
}
}
$mcat = $mcat . "</ul>";发布于 2013-03-07 12:31:39
将以下代码与mod一起使用
$mcat = "<ul>";
for($i=0; $i<count($result); $i++){
if($i%5 == 0 && $i > 0) {
$mcat .= "</ul><ul>";
} else {
$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>";https://stackoverflow.com/questions/15263080
复制相似问题