When we 're dealing with integers, usually it's sufficient to add a
style="text-align: right;"to right-align the numbers in a column.
Floating point numbers, on the other hand, may require the use of number_format() function to properly format them, for example to have the same number of decimals (added to the obvious round(), floor() and ceil() functions).
But, what if I wanted to sort an array having two arithmetic columns?
Then, I'd use the sprintf() function to zero-pad numeric values, like this (certain sections are omitted):
$u0 = mysql_query( $sql, $db) or die( mysql_error());
$aa = array();
while ($u1 = mysql_fetch_row( $u0)) {
$id = $u1[0];
$c1 = $u1[1];
$aa[$id] = number_format($u1[2]/$c1,4) .":". sprintf("%06d", $c1);
}
arsort( $aa); reset( $aa);
while (list($k, $v) = each($aa)) {
list( $v1, $c1) = explode( ":", $v);
$c1 = intval( $c1);
$v1 = round( $v1, 2);
[......]
}With this technique, one can sort numeric values properly as numbers (although by internally converting them to strings). Visit The Light of the LAMP blog for more...
Περισσότερα... »
