PHP - foreach循环多次并创建一个新列表

时间:2013-12-11 05:48:18

标签: php loops

我有一个包含很多值的数组,我想用PHP实现这样的列表。

<div class="item">
  <div class="thumb-cont">
     <ul>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
     </ul>
    </div>
</div>
<div class="item">
  <div class="thumb-cont">
     <ul>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
     </ul>
    </div>
</div>
<div class="item">
  <div class="thumb-cont">
     <ul>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
        <li><a href="#"><img src=""></a></li>
     </ul>
    </div>
</div>

任何人都可以帮助我如何在foreach中管理这个列表或者在php中循环。 谢谢你的帮助!

3 个答案:

答案 0 :(得分:6)

$ arr有18个元素,$ html将包含所有带有ul

的html字符串
$len = count($arr);
$html = '<ul><div class="item"><div class="thumb">';
for ($i = 0; $i < $len; $i++) {
    if(!$i%6 && $i != 0){
        $html .= '</ul></div></div><ul><div class="item"><div class="thumb">';
    }

    $html .='<li>content</li>';
}
$html .='</ul></div></div>';

对于18个元素,它将包含类似

    6个元素
    6个元素
    6元素

答案 1 :(得分:0)

我假设您在PHP循环中生成HTML <ul>标记。使用以下代码:

for($ind = 1; $ind <= 18; $ind++)
{
    if($ind <= 6) // Loop 1 through 6
    {
        // Add <ul> elements here.
    }

    else if($ind >= 7 && $ind <= 12) // Loop 7 through 12
    {
        // Add <ul> elements here.
    }

    else if($ind >=13 $ind <= 18) // Loop 13 through 18
    {
            // Add <ul> elements here.
    }
}

如果它能解决您的问题,请将其标记为答案。

答案 2 :(得分:0)

$counter = 0;
foreach($arrayElems as $elem) {
    $counter++;
    if ($counter < 6) {
        // build ul of first 6 elements
    }
    else if($counter < 12) {
        // build ul of next 6 elements
    }
    else {
        // build ul of next 6 elements
    }

}