我正在将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>
答案 0 :(得分:1)
($i % 4) == 4)
永远不会是真的。 Mod 4将返回0,1,2或3。
答案 1 :(得分:1)
试试这个,
<?php
$i = 0;
foreach (reset($projects) as $value) {
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><div class="row-fluid">';
}
}
if(($i%4) != 0)// if in case the the loop not end the div tag
print '</div>';
?>
答案 2 :(得分:1)
您不需要if
内的第一个foreach
,第二个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>";
答案 3 :(得分:1)
if (($i % 4) == 0)
这将有效。