phpbar.de logo

Mailinglisten-Archive

[php] Schnittmenge zweier Arrays finden und verarbeiten

[php] Schnittmenge zweier Arrays finden und verarbeiten

Norbert Pfeiffer norbert at itbw.de
Sam Aug 28 17:43:28 CEST 2004


Hi Friedrun,

> moechte Datensaetze aus zwei verschiedenen Tabellen 
> miteinander vergleichen und mit der Schnittmenge
> anders verfahren, als mit dem Rest.
okay,
dann ergibt sich jedoch die Frage:
Was soll gemacht werden ?
Kann man die 'ungleichen' gleich komplett vergessen,
oder sollen die nur anders weiter verarbeitet werden?

Wenn man die vergessen kann, braucht man sie gar
nicht erst aus der Datenbank rausholen:

SELECT * FROM table1 AS aa
LEFT JOIN table2 as bb ON aa.wert1 = bb.wert2;

liefert Dir alle Werte fuer die table1.wert1
gleich table2.wert2 ist. Die Namen musst Du nur
an Deine Struktur anpassen.

Willst man die ungleichen Reccords haben, aendert
man nur die Bedingung:

SELECT * FROM table1 AS aa
LEFT JOIN table2 as bb ON aa.wert1 != bb.wert2;

So hast Du fuer jede Verarbeitungsart einen Resultset.

Liegen jedoch die beiden Arrays schon vor, muss man
den Vergleich in PHP coden:
<?
foreach($ARR1 as $value1) {
    foreach($ARR2 as $value2) {
        if ($value1 == $value2) {
            /*  tue dies  */
        } else {
            /*  tue das  */
        }
    }
}

Soweit aus dem Stegreif und ungetestet ... :-)


m. b. G. Norbert
_____________________
normal:  02686-987103
Notruf:  0163-3613642
---------------------
e.o.m.


php::bar PHP Wiki   -   Listenarchive