Foreach что-то делать через x раз?

Я пытаюсь создать автоматический блок со ссылками [Они происходят из массива], все прошло хорошо, прежде чем у меня появилось слишком много ссылок. Теперь все они на одной строке. Как я могу сделать 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 />'; } }