在php foreach中嵌入div元素? [关闭]

I tried to embed 2 elements with class "elementcontent" in element with class "row", can someone tell me what's wrong in my code (see second code block)?

This is raw code without if request to embed 2 elements in one:

  <?php
        $i = 1;
        foreach ($items as $key=>$item) {
    ?>
        <div class="row">
          <div class="elementcontent">element content</div>
        </div>
    <?php

        $i++;

        }
    ?>

This is my code where i try to embed elements:

        <?php
            $i = 1;
            foreach ($items as $key=>$item) {
        ?>
        <div class="row">
           <div class="elementcontent">element content</div>
        <?php
              if ($i % 2 == 0) {
                  echo '</div><div class="row">';
              }
        ?>
        </div>
        <?php

            $i++;

        }
        ?>

This way i found with help from this source: How can I alternate div elements in php foreach loop

To place two elements in each row you want to test the $key -

<?php
    $items = array('foo', 'bar', 'glorp', 'baz');

    foreach ($items as $key=>$item) {
        if($key % 2 == 0){
            echo '<div class="row">';
            echo '<div class="elementcontent">'. $item . '</div>';
        } else {
            echo '<div class="elementcontent">'. $item . '</div>';
            echo '</div>';
        }
    }
?>

By doing it with the key there is no need for an iterator.

If I understood you, what you want is a ROW element, with 2 ELEMENTCONTENT inside of it.

You can do this like this:

<?php
$i = 0;
foreach ($items as $key => $item) {
$row = ($i % 2 == 0); ?>
    <?php if ($row): ?><div class="row"><?php endif; ?>
    <div class="elementcontent">element content</div>
    <?php if (!$row): ?></div><?php endif; ?>
<?php 
    $i++; 
}
if (count($items) % 2 === 1) {
    echo '</div>';
}
?>

Every 2 items will be wrapped with a div with a class row. I've used PHP's alternative syntax for more elegant code.

Answer updated due to an error and also checking if the number of items is an odd number, to close the div tag.