Как показать 3 li в одном div внутри цикла foreach? - PullRequest
0 голосов
/ 15 октября 2018

У меня есть сбор данных и получение деталей по циклу foreach, который работает нормально.

Но я хочу 3

в одном внутри цикла foreach.

Например:

 <ol>
     <div>
         <li></li>
         <li></li>
         <li></li>
     </div>
     <div>
         <li></li>
         <li></li>
         <li></li>
     </div>
     <div>
         <li></li>
         <li></li>
         <li></li>
     </div> 
 </ol>

Я использую приведенный ниже код для отображения данных:

<ol class="product-items widget-viewed-grid">
    <?php $iterator = 1; ?>
    <div id="mp-list-items-<?php echo $block->getSliderId(); ?>" class="owl-carousel owl-theme">
        <?php foreach ($items as $_item): ?>
        <?php echo ($iterator++ == 1) ? '<li class="product-item product-slider"">' : '</li><li class="product-item product-slider"">' ?>
        <div class="slider-product-item-info">
            <div class="product details slider-product-item-details">
                <strong class="product name product-item-name">
                    <a title="<?php echo $block->escapeHtml($_item->getName()) ?>" href="<?php echo $block->getProductUrl($_item) ?>">
                        <?php echo $block->escapeHtml($_item->getName()) ?>
                    </a>
                </strong>
            </div>
        </div>
        <?php echo ($iterator == count($items) + 1) ? '</li>' : '' ?>
        <?php endforeach ?>
    </div>
</ol>

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Вы должны использовать вложенные циклы.Внешняя петля для продукта <div> и внутренняя петля для продукта <li>.

Например

foreach($products as $product){
    echo "<div class='product'>";
    //Now you can call sql query to get items by product id
    foreach($items as $item){
      echo "<li class='list-item'>" . $item->name . "</li>";  //assuming $item has name property
    } //end of inner loop
    echo "<div class='product'>";
} //end of outer loop
0 голосов
/ 15 октября 2018
       echo "<ol>";
           for( $i=0; $i<3; $i++ ) {
           echo "<div>";
               for($j=0; $j<3; $j++) {
               echo "<li>";
                   echo "</li>";
               }
               echo "</div>";
       }
       echo "</ol>";
...