2012-01-06 24 views
23

我需要foreach循環的一些幫助。PHP - 每4次向div循環添加div

基本上我需要做的是圍繞每4個循環的數據輸出一個div。

我有以下循環:

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

,每4倍它回聲說出來,我想在年底將其包裝在一個這樣它看起來就像這樣:

<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

嘗試%模運算符。

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

這對我歡呼偉大的工作 – 2018-01-30 10:54:58

0

稍加修改,以AVD的答案,以確保沒有空的DIV如果數組爲空或它的計數的4因素...

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>'; 
} 
79

這個答案是非常晚 - 但如果人們看到它 - 這是一個清晰的解決方案,沒有凌亂的櫃檯和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

1

你也可以使用array_chunk其削減塊陣列

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