Reputation: 2443
<?php foreach ($fields as $id => $field): ?>
<div class="<?php print $field->class; ?>">
<?php print $field->content; ?>
</div>
<?php endforeach; ?>
the loop's result is as the following,
<div class="1">.....</div>
<div class="2">.....</div>
<div class="3">.....</div>
<div class="4">.....</div>
<div class="1">.....</div>
<div class="2">.....</div>
<div class="3">.....</div>
<div class="4">.....</div>
<div class="1">.....</div>
<div class="2">.....</div>
<div class="3">.....</div>
<div class="4">.....</div>
i want to group the first <div>
like this.
<div class="group">
<div class="1">.....</div>
<div class="2">.....</div>
<div class="3">.....</div>
</div>
<div class="4">.....</div>
how to make the foreach
Upvotes: 2
Views: 6298
Reputation: 50019
If your $field->class
variable always ranges from 1 to 4, you can do the following. Otherwise you need to use a manual counter.
<?php foreach ($fields as $id => $field): ?>
<?php if ($field->class == 1) :?> <div class="group"> <?php endif; ?>
<div class="<?php print $field->class; ?>">
<?php print $field->content; ?>
</div>
<?php if ($field->class == 4) :?> </div> <?php endif; ?>
<?php endforeach; ?>
Custom Counter
<?php $counter = 0; ?>
<?php foreach ($fields as $id => $field): $counter++;?>
<?php if ($counter == 1) :?> <div class="group"> <?php endif; ?>
<div class="<?php print $field->class; ?>">
<?php print $field->content; ?>
</div>
<?php if ($counter == 4) : $counter = 1?>
</div>
<?php endif; ?>
<?php endforeach; ?>
Upvotes: 1
Reputation: 54016
try (raw code)
<div class="group">
<?php $c=0; foreach ($fields as $id => $field) : ?>
<?php if($c%3==0) : ?> </div><div class="group"><?php endif; ?>
<div class="<?php print $field->class; ?>">
<?php print $field->content; ?>
</div>
<?php $c++; endforeach; ?>
</div>
Upvotes: 1
Reputation: 14318
should be similar, just use foreach
instead of for
<style>
.group{
background: red;
margin-top: 10px;
float: left;
}
</style>
<?php $count=0; ?>
<?php for($i=0; $i<= 20; $i++): ?>
<?php if($count == 0): ?>
<div class="group">
<?php endif; ?>
<?php $count++ ?>
<div class="<?php echo $i; ?>"><?php echo $i; ?></div>
<?php if($count == 4): ?>
<?php $count=0; ?>
</div>
<?php endif; ?>
<?php endfor; ?>
Upvotes: 2