dbx_compare

(PHP 4 >= 4.1.0, PHP 5)

dbx_compare -- Compare deux lignes DBX afin de les trier

Description

int dbx_compare ( array row_a, array row_b, string column_key [, int flags] )

dbx_compare() retourne 0 si row_a[$column_key] est égale à row_b[$column_key], et 1 ou -1 si le premier est plus grand ou plus petit que le dernier, respectivement, ou bien le contraire si l'option flags est configurée à DBX_CMP_DESC. dbx_compare() est une fonction d'aide pour dbx_sort(), afin d'aider aux tris.

Le paramètre flags peut prendre plusieurs valeurs :

et le type utilisé pour la comparaison :

Une direction de tri et un type de comparaison peuvent être combinés avec l'opérateur OR (|). La valeur par défaut pour l'option flags est DBX_CMP_ASC | DBX_CMP_NATIVE.

Exemple 1. Exemple avec dbx_compare()

<?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 (
"Impossible de se connecter");

$result = dbx_query ($link, "SELECT id, parentid, description FROM table ORDER BY id");
    
// les données de $result sont désormais classées par id

dbx_sort ($result, "user_re_order");
    
// la date dans $result est maintenant ordonnée par parentid (descending), puis par id

dbx_close ($link);
?>

Voir aussi dbx_sort().