0

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

我需要实现以下目标:

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

感谢您的时间和帮助!

4

3 回答 3

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

我希望这会有所帮助

于 2013-10-04T16:30:10.863 回答
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>";
于 2013-10-04T16:29:15.923 回答
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>';
}
}
于 2013-10-04T16:31:44.567 回答