Перебирать объект и отображать данные в 4 разных делениях - PullRequest
0 голосов
/ 31 августа 2018

У меня есть объект, который имеет несколько объектов, вроде как массив массива.

Мне нужно перебрать его и отобразить поле из массива 2-го уровня (т. Е. Массива, который находится внутри основного массива) в 4 различных делениях, и когда 4-й дел заполнен, мне нужно снова отобразить 5-й элемент в первый див. Вроде как это: -

<span class="anchorScroll27j" id="09"></span>
                <h3 class="alphaNew to9" id="09">0 to 9</h3>

                <?php
                    foreach ($categories as $cat) {

                        $categoryName = $cat->getName();
                        if(is_numeric(substr($categoryName, 0, 1))) { ?>                            

                            <div class="col-md-3">
                                <ul class="designer-listing">
                                        <li><a href="<?php echo $cat->getUrl();?>"><?php echo $categoryName;?></a></li>
                                </ul>
                            </div>
                            <div class="col-md-3">
                                <ul class="designer-listing">
                                        <li><a href="<?php echo $cat->getUrl();?>"><?php echo $categoryName;?></a></li>
                                </ul>
                            </div>
                            <div class="col-md-3">
                                <ul class="designer-listing">
                                        <li><a href="<?php echo $cat->getUrl();?>"><?php echo $categoryName;?></a></li>
                                </ul>
                            </div>
                            <div class="col-md-3">
                                <ul class="designer-listing">
                                        <li><a href="<?php echo $cat->getUrl();?>"><?php echo $categoryName;?></a></li>
                                </ul>
                            </div>
                        <?php
                        }
                    }
                ?>


            <div class="clearfix"></div>

Это то, что я получаю в категориях $: -

[0] => Array
    (
        [entity_id] => 819
        [entity_type_id] => 3
        [attribute_set_id] => 3
        [parent_id] => 4
        [created_at] => 2015-02-19 10:16:51
        [updated_at] => 2015-02-19 10:16:51
        [path] => 1/2/4/819
        [position] => 288
        [level] => 3
        [children_count] => 0
        [is_active] => 1
        [name] => categoryName
    )
[1] => Array
    (
        [entity_id] => 1333
        [entity_type_id] => 3
        [attribute_set_id] => 3
        [parent_id] => 4
        [created_at] => 2016-04-12 17:52:30
        [updated_at] => 2017-12-04 12:13:44
        [path] => 1/2/4/1333
        [position] => 429
        [level] => 3
        [children_count] => 0
        [is_active] => 1
        [name] => catNAme2
    )

Но проблема здесь в том, что когда появляется 5-й элемент, он отображается ниже 1-го элемента, но как отдельный элемент. Но я хочу, чтобы 5-й элемент в том же элементе div, что и 1-й элемент, 6-й элемент в том же элементе, что и 2-й элемент, и так далее. Как мне это сделать?

Я ломал себе голову, но безрезультатно. Я новичок в HTML и CSS, и это мой первый день, делая это.

1 Ответ

0 голосов
/ 31 августа 2018

использовать счетчик и проверять каждую итерацию и используйте следующий способ,

если вы перебираете div, то он будет делать div снова в каждой итерации.

<?php
$key = 1;
foreach ($categories as $cat) {

if ($key === 5)
    $key = 1;

if ($key === 1) {
    $div1 = $div1 . '<li><a href="' . $cat->getUrl() . '">' . $cat->getName() . '</a></li>';
} else if ($key === 2) {
    $div2 = $div2 . '<li><a href="' . $cat->getUrl() . '">' . $cat->getName() . '</a></li>';
} else if ($key === 3) {
    $div3 = $div3 . '<li><a href="' . $cat->getUrl() . '">' . $cat->getName() . '</a></li>';
} else if ($key === 4) {
    $div4 = $div4 . '<li><a href="' . $cat->getUrl() . '">' . $cat->getName() . '</a></li>';
}
$key++;
}
?>

<div class="col-md-3">
    <ul class="designer-listing">
        <?php echo $div1; ?>
    </ul>
</div>

<div class="col-md-3">
    <ul class="designer-listing">
        <?php echo $div2; ?>
    </ul>
</div>

<div class="col-md-3">
    <ul class="designer-listing">
        <?php echo $div3; ?>
    </ul>
</div>

<div class="col-md-3">
    <ul class="designer-listing">
        <?php echo $div4; ?>
    </ul>
</div>
...