DISREGARD THIS ONE -----Original Message----- From: Ralph Guzman [mailto:[EMAIL PROTECTED] Sent: Friday, January 09, 2004 4:35 PM To: 'Raditha Dissanayake'; 'dareal hamsta' Cc: [EMAIL PROTECTED] Subject: RE: [PHP] Sorting data into columns vertically
Here is a function that will do this, assuming $items is an array you would do the following: // $size INTEGER // $width INTEGER // border INTEGER // $cpadding INTEGER // $cspacing INTEGER // $data ARRAY function horizontalTable($size, $width, $border, $cpadding, $cspacing, $data) { $table_width = $width; $width = intval($table_width / $size); $tr = '<TR ALIGN="left">'; $td = "<TD WIDTH=\"$width\">%s</TD>"; $table = "<TABLE WIDTH=\"$table_width\" BORDER=\"$border\" CELLPADDING=\"$cpadding\" CELLSPACING=\"$cspacing\">" . $tr; $i = 0; foreach($data as $value) { $table .= sprintf($td, $value); $i++; if(!($i % $size)) { $table .= '</TR>' . $tr; } } while($i % $size) { $table .= sprintf($td, ' '); $i++; } $end_tr = strlen($tr) * -1; if(substr($table, $end_tr) != $tr){ $table .= '</TR>'; } else { $table = substr($table, 0, $end_tr); } $table .= '</TABLE>'; return $table; } -----Oiginal Message----- From: Raditha Dissanayake [mailto:[EMAIL PROTECTED] Sent: Thursday, January 08, 2004 5:30 AM To: dareal hamsta Cc: [EMAIL PROTECTED] Subject: Re: [PHP] Sorting data into columns vertically Where is your data stored? if you are using a DB surely using order by would less painfull? all the best dareal hamsta wrote: > [ 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 > -- Raditha Dissanayake. ------------------------------------------------------------------------ http://www.radinks.com/sftp/ | http://www.raditha.com/megaupload Lean and mean Secure FTP applet with | Mega Upload - PHP file uploader Graphical User Inteface. Just 150 KB | with progress bar. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php