Heim  >  Artikel  >  Backend-Entwicklung  >  Finden Sie den Unterschied zwischen zwei Arrays in PHP

Finden Sie den Unterschied zwischen zwei Arrays in PHP

WBOY
WBOYOriginal
2023-05-11 10:00:072113Durchsuche

Bei der PHP-Programmierung ist es oft notwendig, Operationen an Arrays durchzuführen, wie z. B. Schnittmenge, Vereinigung, Komplement usw. Eine der häufig verwendeten Operationen besteht darin, den Unterschied zwischen zwei Arrays zu ermitteln, dh die in einem Array vorhandenen Elemente im anderen Array zu löschen, um den Unterschied zu ermitteln. In diesem Artikel stellen wir zwei verschiedene Methoden vor, um die Differenz zweier Arrays zu ermitteln.

Methode 1: Verwenden Sie die Funktion array_diff()

Die Funktion array_diff() ist eine integrierte Funktion von PHP, die verwendet werden kann, um die Differenz zwischen zwei oder mehr Arrays zu vergleichen und ein Differenzarray zurückzugeben. Die Form dieser Funktion ist wie folgt:

array array_diff ( array $array1 , array $array2 [, array $... ] )

Unter diesen sind $array1 und $array2 die beiden zu vergleichenden Arrays, und $... gibt an, dass mehrere Sätze von Array-Parametern zum Vergleich übergeben werden können. Diese Funktion gibt ein assoziatives Array zurück, das aus allen Elementen besteht, die in $array1, aber in keinem anderen Parameterarray vorhanden sind.

Schauen wir uns ein Beispiel an:

$array1 = array("a", "b", "c", "d", "e");
$array2 = array("b", "d", "f");
$result = array_diff($array1, $array2);
print_r($result);

Das Ausgabeergebnis des obigen Codes ist:

Array
(
    [0] => a
    [2] => c
    [4] => e
)

Wie Sie sehen können, gibt die Funktion die Differenz zwischen den beiden Arrays erfolgreich als [a, c, e] zurück.

Methode 2: Foreach-Schleife verwenden

Zusätzlich zur Verwendung integrierter Funktionen können wir auch die Foreach-Schleife verwenden, um den Unterschied zwischen zwei Arrays zu ermitteln. Die Implementierung dieser Methode besteht darin, Array 1 der zu findenden Differenzmenge zu durchlaufen und einen zirkulären Vergleich für Array 2 durchzuführen. Wenn das Element in Array 1 in Array 2 vorhanden ist, löschen Sie das Element in Array 2, andernfalls wird es gespeichert in Array 2. in ein Ergebnisarray.

Schauen wir uns einen Fall an:

$array1 = array("a", "b", "c", "d", "e");
$array2 = array("b", "d", "f");
$result = array();
foreach ($array1 as $value) {
    $exist = false;
    foreach ($array2 as $key => $val) {
        if ($val == $value) {
            unset($array2[$key]);
            $exist = true;
            break;
        }
    }
    if (!$exist) {
        $result[] = $value;
    }
}
print_r($result);

Das Ausgabeergebnis des obigen Codes ist das gleiche wie bei Methode eins:

Array
(
    [0] => a
    [2] => c
    [4] => e
)

Wie Sie sehen können, realisiert diese Methode die Funktion, den Differenzsatz durch Doppelschleifen zu ermitteln. In der Schleife der ersten Ebene wird jedes Element in Array 1 durchlaufen; in der Schleife der zweiten Ebene wird jedes Element in Array 2 durchlaufen, und dasselbe Element wird durch die Funktion „unset“ gelöscht, und dazu wird ein Flag-Bit $exist verwendet Zeichnen Sie auf, ob dieselben Elemente vorhanden sind. Schließlich werden Elemente, die nicht in Array 2 enthalten sind, im Ergebnisarray gespeichert.

Zusammenfassung

Bei der PHP-Programmierung ist das Ermitteln der Differenz zwischen zwei Arrays eine häufige Operation. In diesem Artikel werden zwei Methoden zum Finden von Differenzmengen vorgestellt: Eine besteht darin, die integrierte Funktion array_diff () zu verwenden, und die andere darin, sie über eine Doppelschleife zu implementieren. Unabhängig von der verwendeten Methode kann der Differenzsatz der Arrays leicht ermittelt werden.

Das obige ist der detaillierte Inhalt vonFinden Sie den Unterschied zwischen zwei Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn