Google

NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7">

dbx_compare

(PHP 4 >= 4.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.

Beispiel 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().