Arrays vergleichen, ausgeben wieviele Elemente übereinstimmen!

Gladiator6

Erfahrenes Mitglied
Hi

Ich suche eine Möglichkeit, 2 Arrays (beide mit Zahlen und gleich vielen Elementen) zu vergleichen, und dann auszugeben, wieviele Elemente in beiden Arrays vorhanden sind!

Forensuche war nicht erfolgreich!
 
Die Funktion [phpf]array_diff[/phpf] sollte dir beim Vergleichen helfen und die Funktion [phpf]sizeof[/phpf] beim Zählen der Elemente.

greetz
daddz
 
[phpf]array_intersect[/phpf] i.V.m. [phpf]count[/phpf] bzw. [phpf]sizeof[/phpf] trifft es wohl noch direkter.

Gruß hpvw
 
Vielen Dank! Genau das habe ich gesucht!

Probiert hatte ich folgendes (sollte eigentlich auch funktioniern?):

PHP:
for($i=0; $i<=10; $i++)
{
     if(in_array("$array1[$i]", $array2))
{
$anzahl=$anzahl+1;
}
}
 
Es könnte passieren, dass Du Einträge doppelt zählst, außerdem sind die Anführungszeichen recht überflüssig. Von "Hand" würde ich so zählen:
PHP:
$temp=array();
$anzahl=0;
foreach($array1 as $a) {
     if(in_array($a, $array2) && !in_array($a, $temp)) {
        $anzahl++;
        $temp[]=$a;
    }
}
Gruß hpvw
 
Als Neuling solltest Du Dich mit der Dokumentation vertraut machen.

foreach hat gesagt.:
Die erste Form (Anm.: die von mir verwendete) durchläuft das array_expression-Array (Anm.: hier $array1). Bei jedem Durchgang wird der Wert des aktuellen Elements $value (Anm.: hier $a) zugewiesen und der interne Array-Zeiger um eins erhöht. Dadurch wird beim nächsten Durchgang automatisch das nächste Element ausgewertet.
Gruß hpvw
 
Zurück