Сделать новый номер строки первым номером и каждые 4 числа после? - PullRequest
1 голос
/ 04 марта 2011

Я пытаюсь заставить новый запускать первый раз в моем цикле, а затем после 4-х отсчетов закрыть и затем открыть новый в моем цикле, я пытался сделать это с модулем, но я не думаю, что я делаю этоправильно.

Код, который я пробовал:

<?php for($i = 1; $i <= 12; $i++): ?>
    <?php if(! (i % 4)): ?>
        <div class="row">
    <?php endif; ?>

    <?php echo $i; ?>

    <?php if(! (i % 5)): ?>
        </div>
    <?php endif; ?>
<?php endfor; ?>

Так что мои результаты должны быть:

<div class="row">
1 2 3 4
</div>
<div class="row">
5 6 7 8
</div>
<div class="row">
9 10 11 12
</div>

и т. д. *

Ответы [ 3 ]

3 голосов
/ 04 марта 2011

Самое простое решение было бы:

  • начать вывод до маркер
  • тогда, перебери свои вещи
    • показ предмета
    • и, если $i % 4 == 3, поставить после и перед маркерами
  • и, наконец, отображается окончательный после маркера .


Например, что-то вроде этой части кода:

$arr = range(1, 15);

echo "before";
for ($i=0 ; $i<count($arr) ; $i++) {
    echo " $i ";
    if ($i % 4 == 3) {
        echo 'after</br />';
        echo 'before';
    }
}
echo "after<br />";


Даст такой вывод:

before 0 1 2 3 after
before 4 5 6 7 after
before 8 9 10 11 after
before 12 13 14 after


Преимущество этого решения: вам не нужно иметь дело с каким-либо конкретным случаем (начало и конец цикла) внутри цикла.

2 голосов
/ 04 марта 2011

Это должно сработать, вы запутаетесь в том, как работает %, вы когда-либо захотите использовать % 4 (так как вы проверяете кратные 4), но сравниваете их с разными значениями. !($i % 4) будет верно для точных кратных 4, а это не то, что вам нужно.

<?php for($i = 1; $i <= 12; $i++): 
    if(i % 4 == 1): ?>
        <div class="row">
    <?php endif;

    echo $i; ?>

    <?php if(i % 4 == 0): ?>
        </div>
    <?php endif; 
endfor; ?>
0 голосов
/ 04 марта 2011

Вы получите несоответствие тому, как вы это делаете. То, что вы хотите, вероятно, что-то вроде:

<div class="row">
    <?php for($i = 1; $i <= 12; $i++): ?>
        <?php if(! (i % 4)): ?>
            </div>
            <div class="row">
        <?php endif; ?>

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