0

ループしたい項目 (クライアント) のリストがありますが、5 つごとに<li>タグを付けたいのですが、最後のタグが 5 つ未満 (たとえば 2) の場合は、自動的に閉じます。

次のコードを実行しましたが、これは機能しますが、特に最後の部分を最適化するにはどうすればよいですか?

foreach ($clients AS $k=>$client){
    $liopen ='';
    if ($k % 5 == 0){ 
        echo "<li>\n";
        $liopen = true; // we have an opened an li tag
    }
    echo '<div class="item" style="background:url('.$client['image'].') center center no-repeat;"></div>'."\n";

    if ( $k == 4 || $k == 9 || $k == 14 || $k == 19 || $k == 24 || $k == 29 || $k == 34 || $k == 39 || $k == 44 || $k == 49 || $k == 54 || $k == 59 || $k == 64 || $k == 69 ){ 
        echo "</li>\n";
        $liopen = false;
    }
}

if ($liopen == true) { // if an li tag is still open , close it
    echo "</li>\n";
    $liopen = false;
}
4

2 に答える 2

0

コードを次のように置き換えます-

foreach ($clients AS $k=>$client)
{
    if ($k % 5 == 0)
    echo "<li><br>";

    echo '<div class="item" style="background:url('.$client['image'].') center center no-repeat;"></div>'."<br>";
}

echo "</li>";

タグを開くと<li>前のタグが自動的に閉じられるため、これは機能<li>します。基本的に、最後のグループに残っているクライアントの数に関係なく、 clients -list</li>の最後に1 つだけ必要です。

それを試してみてください...

于 2013-10-03T15:01:04.107 に答える