PHP problem - displaying an array in rows and columns

Модератор: Злобный

Ответить
Sandu
Юзер
Сообщения: 82
Зарегистрирован: Пт авг 13, 2004 02:31

PHP problem - displaying an array in rows and columns

Сообщение Sandu »

How can I display an array in lines and columns.
For example: $arr = array("1","2","3","4","5","6","7","8","9","10");


while($row = $pagedResults->fetchPagedRow()) { // when $row is false loop terminates
echo "<td>$row</td>";
}

It displays me in line: 1 2 3 4 5 6 7 8 9 10.

I want to display like this (4 columns):

1 2 3 4
5 6 7 8
9 10

Thanks.
Аватара пользователя
Arbeit macht frei
Продвинутый
Сообщения: 501
Зарегистрирован: Чт июл 13, 2006 20:38

Сообщение Arbeit macht frei »

while( $row = $pagedResults->fetchPagedRow() ) $results[] = $row;
// $results is something like array('1','2','3','4','5','6','7','8','9');
$cnt = count( $results );
for ($i=0; $i<=$cnt; $i += 4) $rows[] = array_slice( $results, $i, 4 );
echo '<table>';
foreach ( $rows as $row ) {
echo '<tr>';
foreach ( $row as $cell ) echo '<td>' . $cell . '</td>';
echo '</tr>';
}
echo '</table>';
Аватара пользователя
ZorroGFS
Продвинутый
Сообщения: 961
Зарегистрирован: Вт сен 10, 2002 11:25
Откуда: Кишинёв
Контактная информация:

Сообщение ZorroGFS »

Arbeit macht frei, как-то сложно, куча дополнительных массивов, вложеные циклы и вообще :)
имхо можно проще:

Код: Выделить всё

	$arr = array("1","2","3","4","5","6","7","8","9","10");
	echo "<table border=1><tr>";
	for($i=0;$cell=each($arr);$i++){
		if($i && !($i % 4)){
			echo "</tr><tr>";
		}
		echo "<td>".$cell["value"]."</td>";
	}
	echo "</tr></table>";
Аватара пользователя
Arbeit macht frei
Продвинутый
Сообщения: 501
Зарегистрирован: Чт июл 13, 2006 20:38

Сообщение Arbeit macht frei »

Я первый и ниипет. :D

А так наверно ещё лучше:

$a = array("1","2","3","4","5","6","7","8","9");
echo '<table border=1><tr>';
foreach( $a as $k=>$v ) {
if( $k && !($k % 4) ) echo '</tr><tr>';
echo '<td>'.$v.'</td>';
}
echo '</tr></table>';
Ответить

Вернуться в «Программирование»