OPTIONAL, VERALTET
SYNOPSIS
        int   assoc(mixed key, mixed *keys);
        mixed assoc(mixed key, mixed *alist [, mixed fail]);
        mixed assoc(mixed key, mixed *keys, mixed *data [, mixed fail]);

BESCHREIBUNG
        Alle drei Aufrufe suchen nach einem <key> in einem <alist> (einem
        Array von zwei Arrays gleicher Groesse) oder in einem geordneten
        Array <keys>. Der Versuch, in einem anderen Konstrukt zu suchen,
        fuehrt zu einem unvorhersehbaren Ergebnis.

        Komplexitaet: O( lg(n) ), wobei <n> die Anzahl Keys ist.

        1.  Form: Key-Suche
            <key> wird im Array <keys> gesucht. Das Resultat ist der Index,
            in dem <key> gefunden wurde. Wird <key> nicht gefunden, liefert
            assoc() -1.

        2.  Form: Suche in Alist.
            <key> wird in der <alist> gesucht, das Resultat sind die Werte,
            die zu <key> gehoeren, wenn <key> gefunden wird. Wenn <key> nicht
            gefunden wird, wird 0 zurueck geliefert oder <fail>, falls
            angegeben.

        Damit das Sinn macht, muss <data> so geordnet sein, dass es zu <key>
        passt. Diese Form der Suche ist deshalb vorwiegend fuer
        multidimensionale Alists geeignet.

SIEHE AUCH
        alists(LPC), insert_alist(E), order_alist(E)
