Страница 1 из 1

PHP problem - displaying an array in rows and columns

Добавлено: Сб июн 21, 2008 09:18
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.

Добавлено: Сб июн 21, 2008 11:31
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>';

Добавлено: Сб июн 21, 2008 14:26
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>";

Добавлено: Сб июн 21, 2008 15:35
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>';