如果问题不明确,我很抱歉,让我解释一下:
我需要实现以下目标:
<div>
<div>art 1</div>
<div>art 2</div>
</div>
<div>
<div>art 3</div>
<div>art 4</div>
</div>
<div>
<div>art 5</div>
<div>art 6</div>
</div>
etc
每个艺术都在一个数组中。到目前为止,我已经尝试了以下代码:
foreach $articles as $article{
for($i=1; $i<3; $i++){
if($i==1){
echo '<div>';
}
echo '<div>'.$article->title.'</div>';
if($i==2){
echo '</div>';
}
}
}
但我得到的不是我想要的结果:
<div>
<div>art 1</div>
<div>art 1</div>
</div>
<div>
<div>art 2</div>
<div>art 2</div>
</div>
<div>
<div>art 3</div>
<div>art 3</div>
</div>
etc
我不知道如何每两个div更改数组的值。我没有找到类似的问题,主要是因为我不知道如何搜索它。如果是重复,请指点我。
感谢您的时间和帮助!
答案 0 :(得分:2)
你需要的是模数。模数除以数字并返回余数。它非常适合确定您的计算位置。模数的字符是%
$counter = 1;
foreach($articles as $article) {
if($counter % 2 == 1) echo '<div>';
echo '<div>'.$article->title.'</div>';
if($counter % 2 == 0) echo '</div>';
$counter++;
}
if($counter % 2 == 0) echo '</div>';
以下是数学的工作原理 第一个循环,计数器是1.模数只关注余数,所以它只划分整数。因此1/2返回0,余数为1。 第二个循环计数器为2.因此2/2返回1,余数为0。
这是具有模3的相同循环
1%3 = 1/3 = 0余数1
2%3 = 2/3 = 0余数2
3%3 = 3/3 = 1余数0
我希望有帮助
答案 1 :(得分:1)
我不知道codeigniter,但在php中这应该可行
$i = 0;
echo "<div>";
foreach ( $articles as $article ){
echo "<div>" . $article->title . "</div>";
if (++$i % 2 === 0 && $i !== count($articles)) echo "</div><div>";
}
echo "</div>";
答案 2 :(得分:0)
尝试:
foreach( $articles as $key => $article ){
$key++;
if( $key % 2 == 0 ){
echo '<div>'.$article->title.'</div>';
echo '</div><div>';
}else{
echo '<div>'.$each['title'].'</div>';
}
}