Forum und email

dbx_compare

(PHP 4 >= 4.0.7, PHP 5 <= 5.0.5, PECL dbx:1.1.0)

dbx_compare — Vergleicht zwei Reihen für Sortierzwecke

Beschreibung

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

dbx_compare() gibt 0 zurück, wenn row_a[$column_key] gleich row_b[$column_key] ist. Ist der erste Wert größer oder kleiner als der zweite, wird 1 bzw. -1 zurückgegeben (oder umgekehrt, wenn der Parameter flag auf DBX_CMP_DESC gesetzt ist). dbx_compare() ist eine Hilfsfunktion für dbx_sort(), um das Erstellen bzw. Verwenden der Benutzerfunktion zu vereinfachen.

Der Parameter flags spezifiziert die Vergleichsrichtung:

  • DBX_CMP_ASC - aufsteigende Reihenfolge
  • DBX_CMP_DESC - absteigende Reihenfolge
und den bevorzugten Vergleichstyp:
  • DBX_CMP_NATIVE - keine Typenkonvertierung
  • DBX_CMP_TEXT - vergleicht die Werte als Strings
  • DBX_CMP_NUMBER - vergleicht die Werte numerisch
Eine der Vergleichs-, und eine der Typkonstanten können mit dem Bit-Operator OR (|) kombiniert werden. Die Standardwerte für flags sind DBX_CMP_ASC | DBX_CMP_NATIVE.

Example#1 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 (
"Fehler beim Verbinden");

$result dbx_query ($link"SELECT id, parentid, description FROM table ORDER BY id");
    
// die Daten in $result sind nun nach id gereiht

dbx_sort ($result"user_re_order");
    
// die Daten in $result sind nun nach parentid (absteigend) gereiht,
    // und dann nach id

dbx_close ($link);
?>

Siehe auch dbx_sort().