Как разделить foreach вывод на блоки в html для формирования шаблона?

Вывожу контент в шаблон сайта в количестве 10 новостей. В шаблоне контент делится на блоки, код:

        <div class="col-md-4">
          <article class="card mb-4">
            <header class="card-header">
              <div class="card-meta">
                <a href="#"><time class="timeago" datetime="2019-07-16 20:00">16 july 2019</time></a> in <a href="page-category.html">Work</a>
              </div>
              <a href="post-image.html">
                <h4 class="card-title">How can we, how can we sing about ourselves?</h4>
              </a>
            </header>
            <a href="post-image.html">
              <img class="card-img" src="img/articles/3.jpg" alt="" />
            </a>
            <div class="card-body">
              <p class="card-text">Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. </p>
            </div>
          </article><!-- /.card -->

          <article class="card mb-4">
            <header class="card-header">
              <div class="card-meta">
                <a href="#"><time class="timeago" datetime="2019-10-15 20:00">15 october 2019</time></a> in <a href="page-category.html">Lifestyle</a>
              </div>
              <a href="post-image.html">
                <h4 class="card-title">The king is made of paper</h4>
              </a>
            </header>
            <a href="post-image.html">
              <img class="card-img" src="img/articles/20.jpg" alt="" />
            </a>
            <div class="card-body">
              <p class="card-text">Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. </p>
            </div>
          </article><!-- /.card -->
        </div>

Как в <div class="col-md-4"> вывести по два <article class="card mb-4">

Вывожу так

$c = 1;

foreach($obj['itemListData'] as $key=>$val){ 

$id = $val['itemInfos']['id'];
$text = $val['itemInfos']['text'];

echo '.. . шаблон ...';

if ($c == 10) break;

$c++;

}

Запутался :( Помогите, пожалуйста.

Как вывод по два <article class="card mb-4"> объединить в один блок <div class="col-md-4"> и продолжить далее, до заданного кол-ва, например, до 10?

Или как после каждого четного вставить тег конца блока и начало следующего. А под конец закрыть последний блок.

Нужно так:

<div class="col-md-4">
 <article class="card mb-4">...</article>
 <article class="card mb-4">...</article>
</div>

<div class="col-md-4">
 <article class="card mb-4">...</article>
 <article class="card mb-4">...</article>
</div>

<div class="col-md-4">
 <article class="card mb-4">...</article>
 <article class="card mb-4">...</article>
</div>

и т.д.

Мне посоветовали использовать array_chunk, потом два foreach, один вложенный в другой.

Внешний выводит col-md-4, внутренний - артикли article.

Но меня это окончательно запутало :(


Ответы (2 шт):

Автор решения: u_mulder

Код с использованием array_chunk будет выглядеть так:

$chunks = array_chunk($data, 2); // 2 - размер чанка
foreach ($chunks as $chunk) {?>
    <div class="col-md-4">
<?php
    foreach ($chunk as $article) {?>
        <article class="card mb-4">...</article>
<?php
    }?>  
    </div>
<?php
}
→ Ссылка
Автор решения: Александр Немец

хз понял или нет.... может попробовать цикл в цикле, а там ещё цикл =)

for ($d = 1; $d <= 10; $d++) {
    echo "<br />";
    for ($c = 1; $c <= 2; $c++) {
        foreach($obj['itemListData'] as $key=>$val){ 
         $id = $val['itemInfos']['id'];
         $text = $val['itemInfos']['text'];

            echo '.. . шаблон ...';      
    }
}

→ Ссылка