Sure thing criscom. Below is a very rudimentary piece of code.
<?php
$rows = array(
1 => "row1",
2 => "row2",
3 => "row3",
4 => "row4",
5 => "row5",
6 => "row6",
7 => "row7",
8 => "row8",
9 => "row9",
10 => "row10",
);
?>
<?php
$currIx = 1; // This will be our incremental index variable. Let's make it 1-based to maintin consistency with your example.
$currWrapperIx = 1; // Wrapper counter
$wasOpen = FALSE; // This variable will be used later as a flag to watch for properly closing wrapper divs.
?>
<?php foreach ($rows as $id => $row): ?>
<?php switch ($currIx){
// List the row indices that are supposed to begin a new wrapper.
case 1:
case 4:
case 9:
if($wasOpen == TRUE){ // Close current wrapper div before opening a new one.
print "</div>\n";
$wasOpen = FALSE;
$currWrapperIx ++; // Increment the index for next wrapper's class.
}
// Open a new wrapper div
print "<div class=\"wrapper-{$currWrapperIx}\">\n";
$wasOpen = TRUE;
break;
default:
// For other row indices do nothing.
}
?>
<div><?php print $row; ?></div>
<?php $currIx ++; ?>
<?php endforeach; ?>
<?php
// Close the last wrapper.
if($wasOpen == TRUE){
print "</div>\n";
$wasOpen = FALSE;
}
?>
Sorry, I did not bother to make it pretty-print, but the source of the generated page has the div structure you asked for. The code is abstract and has dummy rows array, so you can test it by simply pasting it in an empty php file and trigger it outside Drupal. Anyway you should get the idea.