Каждый 4 div, завернутый в div - PullRequest
1 голос
/ 20 января 2020

Существует такое al oop, я хочу получить 4 повторения div с классом tabs__cat-img, и эти 4 div должны превратиться в div с классом tabs_ _ cat. Буду благодарен за любую помощь.

<?php
    if($children_categories) :
    foreach($children_categories as $children_cat) :
?>
<div class="tabs__cat">
    <div class="tabs__cat-img">
        <a href="">
            <img src="" alt="">
        </a>
    </div>
</div>
<?php
    endforeach;
    endif;
?>

Вывод должен выглядеть так:

<div class="tabs__cat">
    <div class="tabs__cat-img">
        <a href="">
            <img src="" alt="">
        </a>
    </div>
    <div class="tabs__cat-img">
        <a href="">
            <img src="" alt="">
        </a>
    </div>
    <div class="tabs__cat-img">
        <a href="">
            <img src="" alt="">
        </a>
    </div>
    <div class="tabs__cat-img">
        <a href="">
            <img src="" alt="">
        </a>
    </div>
</div>

<div class="tabs__cat"> ...

Ответы [ 2 ]

1 голос
/ 20 января 2020

Я бы сделал это так:

<?php
// Creates a sample array
$children_categories = array_fill(0, 10, 'Sample');

if($children_categories) :

    $total_categories = count($children_categories) - 1;

    foreach($children_categories as $id=>$children_cat) :

    // True for 0 -> Div will be created on first and then every 4th element
    if( $id % 4 === 0 ) { 
        echo '<div class="tabs__cat">';
    }
    // or, a bit shorter: 
    // echo $id % 4 === 0 ? '<div class="tabs__cat">' : '';

    ?>

    <div class="tabs__cat-img">
        <a href="">
            <img src="" alt="">
        </a>
    </div>

    <?php

    // True on 3 -> closing Div will be created before 4th and then every 4th element
    // Or Case: Make sure to print closing div on very last element
    if( $id % 4 === 3 || $id === $total_categories ) { 
        echo '</div>';
    }

    endforeach;
endif;
?>
0 голосов
/ 21 января 2020

Вам просто нужно немного изменить код.
Я переместил родительский div с классом tabs__cat из foreach l oop.

<?php
$children_categories = array_fill(0, 4, 'Sample');

    if($children_categories) :
    echo '<div class="tabs__cat">'; // small changed here
    foreach($children_categories as $children_cat) :
?>

    <div class="tabs__cat-img">
        <a href="">
            <img src="" alt="">
        </a>
    </div>

<?php
    endforeach;
    echo '</div>'; // small changed here
    endif;
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...