©
This document uses PHP Chinese website manual Release
(PHP 4 >= 4.1.0, PHP 5 <= 5.0.5, PECL dbx >= 1.1.0)
dbx_compare — Compare two rows for sorting purposes
$row_a
, array $row_b
, string $column_key
[, int $flags
= DBX_CMP_ASC | DBX_CMP_NATIVE
] )dbx_compare() is a helper function for dbx_sort() to ease the make and use of the custom sorting function.
row_a
First row
row_b
Second row
column_key
The compared column
flags
The flags
can be set to specify comparison
direction:
DBX_CMP_ASC
- ascending order
DBX_CMP_DESC
- descending order
DBX_CMP_NATIVE
- no type conversion
DBX_CMP_TEXT
- compare items as strings
DBX_CMP_NUMBER
- compare items numerically
Returns 0 if the row_a[$column_key]
is equal to row_b[$column_key], and 1
or -1 if the former is greater or is smaller than the
latter one, respectively, or vice versa if the flag
is set to DBX_CMP_DESC
.
Example #1 dbx_compare() example
<?php
function user_re_order ( $a , $b )
{
$rv = dbx_compare ( $a , $b , "parentid" , DBX_CMP_DESC );
if (! $rv ) {
$rv = dbx_compare ( $a , $b , "id" , DBX_CMP_NUMBER );
}
return $rv ;
}
$link = dbx_connect ( DBX_ODBC , "" , "db" , "username" , "password" )
or die( "Could not connect" );
$result = dbx_query ( $link , "SELECT id, parentid, description FROM table ORDER BY id" );
// data in $result is now ordered by id
dbx_sort ( $result , "user_re_order" );
// date in $result is now ordered by parentid (descending), then by id
dbx_close ( $link );
?>