phpbar.de logo

Mailinglisten-Archive

gemeinsame Werte aus zwei Listen holen
Archiv Mailingliste php_(at)_infosoc.uni-koeln.de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gemeinsame Werte aus zwei Listen holen



Hallihallohallöle,

ich brauche eine Funktion, die mir die Werte aus einem Array liefert,
die auch in einem zweiten Array enthalten sind. 

Grund: Ich habe ein Web-Formular, in dem die User aus einer
Checkbox-Liste ein paar Optionen (=IDs) wählen. Je nachdem, welcher User
die Liste bearbeitet, wird nur ein Teil der Kategorien angezeigt. Nun
könnte man ja aber auch ein gefälschtes Formular zurücksenden, ich muß
also die Daten, die zurückkommen, nochmal gegen die "erlaubt"-Liste
vergleichen.

Ich dachte mir, daß sowas häufiger vorkommt, und wollte Euch mal das
Snippet schicken:

-8<-
function restrict($x, $l) { /* returnt ein Array mit den gemeinsamen
Werten von $x und $l */
        $r = array();
	
	/* leere Arrays abfangen, da sie sich bei reset() nicht von Nullwerten
unterscheiden 	lassen. */
        if (!(sizeof($x) && sizeof($l))) return $r;

	/* Wie performant ist sort()? */
        sort($x); sort($l);
        $a = reset($x); $b = reset($l);
        $continue = 1;

        while ($continue) {
                if ($a == $b) {
                        $r[sizeof($r)]=$a; /* Element anhängen - geht
das einfacher? */
                        $continue &= (list($foo, $a) = each($x));
                        $continue &= (list($foo, $b) = each($l));
                } else if ($a < $b) $continue &= (list($foo, $a) =
each($x));
                else $continue &= (list($foo, $b) = each($l));
        }
        return $r;
}
-8<-

1) Gibt es eigentlich sowas wie snippets.org für PHP? Vielleicht bei
phpwizard?
2) Hat einer noch Vorschläge zur Verbesserung der Performance für die
obenstehende Funktion?

Matthias
-- 
   w e b f a c t o r y | matthias pigulla
 
      am wichelshof 10   fon 0228-9636949
      53111 bonn         fax 0228- 655656
      www.webfactory.de  mp_(at)_webfactory.de

Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive