0

json オブジェクトのいくつかのアイテムをグリッドに出力しています。終了 div タグを適切な場所に出力しようとしていますが、「row-fluid」の終了 div が欠落しています。私のコードは次のとおりです。

<?php
    require_once('includes/header.php');
?>
<div id="content" class="row-fluid">
    <?php
    if (!isset($session['items'])) {
        $curl_handle = curl_init();
        curl_setopt($curl_handle, CURLOPT_URL, 'http://www.behance.net/v2/users/andrewwelch/projects?api_key=n1LTMZFd9zez1j6jLFYBA7GyWFewPsrb');
        curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
        curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Your application name');
        $query = curl_exec($curl_handle);
        curl_close($curl_handle);
        $projects = (json_decode($query));
    } else {
       $projects = $session['items'];
    }
    ;
    $i = 0;
    foreach (reset($projects) as $value) {
        if ($i == 0) {
            print '<div class="row-fluid">';
        }
        if (($i % 4) == 0) {
            print '<div class="row-fluid">';
        }
        print '<div class="span3" style="height:200px;">';
        $covers = (Array) $value->covers;
        print '<img src="' . reset(array_slice($covers, '1')) . '"/>';
        print '<span class="thumb_title">' . $value->name . '</span>';
        print '</div>';
        if (($i % 4) == 4) {
        print '</div>';
        }
        $i++;
    }
    ?>
</div>
</div>
</div> <!-- /container -->
</body>
</html>
4

4 に答える 4

1
($i % 4) == 4)

決して真実ではありません。Mod 4 は 0、1、2、または 3 を返します。

于 2013-08-09T09:43:23.833 に答える
1

if内の最初のものは必要ありませんforeach。2番目のものはifすでにその条件を処理しています。divループの開始時に 余分な開口部が追加されるため、これを削除する必要があります。

第二に、ジムが指摘した($i % 4) == 4)ように、決して真実ではありません。あなたがしたい($i % 4) == 0)

次のことを試してください。

$i = 0;
foreach (reset($projects) as $value) {
    if (($i % 4) == 0) {
        print '<div class="row-fluid">';
    }
    print '<div class="span3" style="height:200px;">';
    $covers = (Array) $value->covers;
    print '<img src="' . reset(array_slice($covers, '1')) . '"/>';
    print '<span class="thumb_title">' . $value->name . '</span>';
    print '</div>';
    if (($i % 4) == 0) {
        print '</div>';
    }
    $i++;
}

アップデート:

OPの望ましい出力を見た後:

$i = 0;
foreach($projects as $value) {
    if ($i % 4 == 0) {
        if ($i != 0) {
            print "</div>";
        }
        print '<div class="row-fluid">';
    }

    print '<div class="span3" style="height:200px;">';
    $covers = (Array) $value->covers;
    print '<img src="' . reset(array_slice($covers, '1')) . '"/>';
    print '<span class="thumb_title">' . $value->name . '</span>';
    print '</div>';

    $i++;
}
print "</div>";
于 2013-08-09T09:48:04.243 に答える