Sorting data into columns vertically

From: Date: Wed, 07 Jan 2004 18:50:11 +0000
Subject: Sorting data into columns vertically
Groups: php.general 
Request: Send a blank email to php-general+get-173997@lists.php.net to get a copy of this message
[ Please copy me off list. ] Say I have 7 items of data and I wish to sort them into 3 columns in a HTML table. The items are unevenly sized, so rather than print them out in rows - resulting in lots of wasteful whitespace - I would like to output them in vertical order. However if I use the modulus operator to check for when to break into a new column... foreach ($items as $item) { $counter++; if ( ($counter % $columns) == 0) { print "</td><td>"; } } ...the output will be something like this... +-------+-------+-------+ | Item1 | Item4 | Item7 |
 | Item2 | Item5 |       |
 | Item3 | Item6 |       |
+-----------------------+ ...when what I'm really looking for is this... +-------+-------+-------+ | Item1 | Item4 | Item6 | | Item2 | Item5 | Item7 |
 | Item3 |       |       |
+-----------------------+ Obviously if the number of items and columns are static, I have no problem, but how do I get a layout that appeals to people and not computers if they're dynamic? This has me befuddled, I'm wondering is there an algorithm for doing it or is it effectively a Turing Test. Thanks, adam <?php $s=array(74,65,112,104,112,72,32,59,45,41); for($i=0;$i<count($s);$i++){echo'&#'.$s[$i].';';} ?> _________________________________________________________________ MSN 8 with e-mail virus protection service: 2 months FREE* http://join.msn.com/?page=features/virus

« previous php.general (#173997) next »