# dbx_compare

(PHP 4 >= 4.1.0, PHP 5 < 5.1.0, PECL dbx >= 1.1.0)

dbx_compare — Compare two rows for sorting purposes

### 说明

dbx_compare ( array `$row_a` , array `$row_b` , string `$column_key` [, int `$flags` = DBX_CMP_ASC | DBX_CMP_NATIVE ] ) : int

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
  and the preferred comparison type:
  - `DBX_CMP_NATIVE` - no type conversion
  - `DBX_CMP_TEXT` - compare items as strings
  - `DBX_CMP_NUMBER` - compare items numerically
  One of the direction and one of the type constant can be combined with bitwise OR operator (|).

### 返回值

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);
    ?>

### 参见

- dbx_sort() - Sort a result from a dbx_query by a custom sort function