如何在div中使用foreach进行迭代?

时间:2013-10-04 16:24:27

标签: php codeigniter

如果问题不明确,我很抱歉,让我解释一下:

我需要实现以下目标:

<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更改数组的值。我没有找到类似的问题,主要是因为我不知道如何搜索它。如果是重复,请指点我。

感谢您的时间和帮助!

3 个答案:

答案 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>';
}
}