如何在foreach循环中构建HTML以包含输出
问题描述:
我有一个需要修改的foreach循环,以便在计数10后关闭它正在循环的html结构并打开一个新结构以添加10更多的计数等等,直到数组中没有更多的元素。如何在foreach循环中构建HTML以包含输出
<?php
// open the ul
$location_lists .= '<ul';
// get the array
$locations = get_posts(array(
'post_type' => 'location',
'showposts' => -1
));
foreach ($locations as $location) {
$address = some code here;
$location_lists .= '<li>';
$location_lists .= '<span>'. ($address) .'</span>';
$location_lists .= '</li>';
};
// after 10 loops close the ul
$location_lists .= '</ul>';
// open a new ul to hold 10 more li's etc...
$location_lists .= '<ul';
?>
所以,如果有该阵列中24个元素,我需要2微升的含有10里的每一个和所述第三UL将包含4剩余的里的。
答
$location_lists .= '<ul>';
$i=0;
foreach ($locations as $location) {
$i++;
$address = some code here;
$location_lists .= '<li>';
$location_lists .= '<span>'. ($address) .'</span>';
$location_lists .= '</li>';
if (($i % 10) == 0) {
$location_lists .= '</ul><ul>';
}
};
$location_lists .= '</ul>';
答
$location_lists='';
$locations = get_posts(array(
'post_type' => 'location',
'showposts' => -1
));
$i=0;
foreach ($locations as $location) {
if($i==0){$location_lists .= '<ul>';}
$address = some code here;
$location_lists .= '<li>';
$location_lists .= '<span>'. ($address) .'</span>';
$location_lists .= '</li>';
$i++;
if($i==10){$location_lists .= '</ul>';$i=0}
};
if($i!=0){$location_lists .= '</ul>';}
+0
缺货的6类92个可用的元素,这个代码仅输出阵列中的19个元件的最后一个类别。一个UL包含10个元素,第二个包含9个。 – Fettabachi
该代码完成了我在我的问题中所要求的。它非常干净简洁。 – Fettabachi
刚发现一个问题。如果数组中有十个元素,该脚本将创建一个额外的空ul。 – Fettabachi
This works - if(($ i%10)== 1 && $ i> 10){DeveloperH – Fettabachi