Я пытаюсь создать автоматический блок со ссылками [Они происходят из массива], все прошло хорошо, прежде чем у меня появилось слишком много ссылок. Теперь все они на одной строке. Как я могу сделать foreach print br через 4 раза?
теперь это примерно так:
foreach($this->rpanelinks as $name => $url) { echo '<a href="' . BASE_URL . $url . '">' . $name . '</a>'; }
Благодаря!
Используйте счетчик:
$i = 1; foreach($this->rpanelinks as $name => $url) { if($i == 4) echo '<br>'; echo '<a href="' . BASE_URL . $url . '">' . $name . '</a>'; ++$i; }
или если вы не будете каждые 4 раза
$i = 1; foreach($this->rpanelinks as $name => $url) { if($i % 4 == 0) echo '<br>'; echo '<a href="' . BASE_URL . $url . '">' . $name . '</a>'; ++$i; }
$i % 4
вычисляет оставшуюся часть операции $i / 4
а если это 0
то значение uf $i
делимо на 4
.
Я не очень понимаю этот вопрос, если честно. Тем не менее, вы можете поместить любую логику в свой foreach, который вы хотите. Например:
$counter = 0; foreach($this->rpanelinks as $name => $url) { $counter ++; echo '<a href="' . BASE_URL . $url . '">' . $name . '</a>'; if ($counter %4 == 0) echo '<br />'; }
$i = 0; foreach($this->rpanelinks as $name => $url) { ++$i; if($i >= 4){ echo '<br/>'; $i=0; } echo '<a href="' . BASE_URL . $url . '">' . $name . '</a>'; }
используйте переменную, чтобы подсчитывать ваши ссылки, после того, как код распечатывает breakline
после каждых 4 ссылок
$counter = 0; foreach($this->rpanelinks as $name => $url) { echo '<a href="' . BASE_URL . $url . '">' . $name . '</a>'; if(++$counter % 4 == 0) { echo '<br />'; } }