Как поставить перенос каждые n строк

1. Алексей (27.08.2013 / 17:44)
Есть массив array(1=> 'img1', 2=> 'img2', 3=> 'img3');

Как правельно реализовать перенос в цыкле каждые N строчек.

Например надо пренести каждый второй елемента массива, должно выйти так

1=> 'img1' 2=> 'img2'

тут перенос
3=> 'img3'

2. marti91 (27.08.2013 / 17:55)
а, я не правильно понял оказывается.

3. Алексей (27.08.2013 / 17:58)
2. marti91, нужно не каждый елемент переносить

4. Алексей (27.08.2013 / 18:16)
Задачку решил.

5. JustZero (27.08.2013 / 18:37)
<?php

$images = array('img1', 'img2', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3');

$i = 0;

foreach ($images AS $image) {
	$i++;
	echo $image;
	if ($i == 3) {
		echo '<br />';
		$i = 0;
	}
}

?>

Добавлено через 00:25 сек.
блин, не заметил 4 сообщения :/

6. Алексей (27.08.2013 / 19:08)
5. alexandr.sytnyk, спасибо, так и сделал)

7. Вантуз-мен (27.08.2013 / 19:37)
1. ByKuznec, http://www.php.net/manual/ru/function.array-chunk.php

8. JustZero (27.08.2013 / 19:42)
7. Vantuz, типа так?
<?php

$images = array('img1', 'img2', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3', 'img3');


foreach (array_chunk($images, 3) AS $image) {
	foreach($image as $img) {
		echo $img;
	}
	echo '<br />';
}

?>

Добавлено через 02:58 сек.
а как насчет производительности?

9. Вантуз-мен (27.08.2013 / 20:05)
да примерно так, только вызов нужно выносить из цикла

<? 
$images = array('img1', 'img2', 'img3', 'img4', 'img5', 'img6', 'img7', 'img8', 'img9', 'img10', 'img11', 'img12', 'img13', 'img14');
$broken = array_chunk($images, 2);


echo '<table>';
 foreach ($broken as $image) {
     echo '<tr>';
     foreach ($image as $value) {
         echo '<td>' . $value . '</td>';
     }
     echo '</tr>';
 }
 echo '</table>';

Добавлено через 01:40 сек.
Так будет красивее, но наверно все же медленнее

Добавлено через 07:42 сек.
Самый короткий и быстрый код такой
<?
$images = array('img1', 'img2', 'img3', 'img4', 'img5', 'img6', 'img7', 'img8', 'img9', 'img10', 'img11', 'img12', 'img13', 'img14');

foreach ($images as $key=>$image) {
 	echo $image;
 	if ($key & 1) echo '<br />';
}


10. Петр (30.08.2013 / 12:55)
9. Vantuz, это не цикл, а foreach и array_chunk вычисляется один раз, поэтому можно не выносить. Вообще, при чем тут регулярные выражения. smile

URL: https://visavi.net/topics/38795