如何在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>'; 
+1

该代码完成了我在我的问题中所要求的。它非常干净简洁。 – Fettabachi

+0

刚发现一个问题。如果数组中有十个元素,该脚本将创建一个额外的空ul。 – Fettabachi

+0

This works - if(($ i%10)== 1 && $ i> 10){DeveloperH – Fettabachi

$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