2012-01-06 13 views
23

foreachループで少し助けが必要です。PHP - 4回ごとにforeachループにdivを追加する

私がしなければならないことは、基本的に4ループ毎にデータの出力を囲むようにdivを折り返すことです。

I以下のループがあります。それはエコー私は最後にそうでそれをラップしたいことを、それはそうのようになります。すべての4回の場合

foreach($users_kicks as $kicks) { 
    echo $kicks->brand; 
} 

<div> 
    kicks brand 
    kicks brand 
    kicks brand 
    kicks brand 
</div> 
<div> 
    kicks brand 
    kicks brand 
    kicks brand 
    kicks brand 
</div> 
<div> 
    kicks brand 
    kicks brand 
    kicks brand 
    kicks brand 
</div> 

をし、そうです。

乾杯

答えて

94
$count = 1; 
foreach($users_kicks as $kicks) 
{ 
    if ($count%4 == 1) 
    { 
     echo "<div>"; 
    } 
    echo $kicks->brand; 
    if ($count%4 == 0) 
    { 
     echo "</div>"; 
    } 
    $count++; 
} 
if ($count%4 != 1) echo "</div>"; //This is to ensure there is no open div if the number of elements in user_kicks is not a multiple of 4 
16

%モジュラス演算子を試してください。この答えは非常に遅れている

if($lastRec=count($user_kicks)){ 
    echo '<div>'; 
    $i=1; 
    foreach($users_kicks as $kicks) { 
    if(($i % 4 == 0) && ($i<$lastRec)) echo '</div><div>'; 
    echo $kicks->brand; 
    $i++; 
    } 
    echo '</div>'; 
} 
+1

を配列をカットarray_chunkを使用することができます –

0

配列が空であるか、それは4倍、カウントされていた場合に空のDIVがないことを確認するためにAVDの答えに少し修正... - しかし、場合には、人々はそれを参照してください - これはクリーンなソリューション、無乱雑カウンターやif文です:

foreach (array_chunk($users_kicks, 4, true) as $array) { 
    echo '<div>'; 
    foreach($array as $kicks) { 
     echo $kicks->brand; 
    } 
    echo '</div>'; 
} 

あなたが読むことができます試合array_chunk on php.net

79

$i=1; 
//div begins 
foreach($users_kicks as $kicks) { 
    if($i % 4 ==0) 
    { 
     //div ends 
     //div begins 
    } 
    echo $kicks->brand; 
    $i++; 
} 
//div ends 
1

あなたはまた、これは私歓声のために素晴らしい仕事をブロックで

$blocks = array_chunk($users_kicks, 4); 
foreach ($blocks as $block) { 
    echo '<div>'; 
    foreach ($block as $kicks) { 
     echo $kicks->brand; 
    } 
    echo '</div>'; 
} 
関連する問題