Heim  >  Artikel  >  Backend-Entwicklung  >  PHP ermittelt, ob zwei Arrays die gleichen Elemente haben

PHP ermittelt, ob zwei Arrays die gleichen Elemente haben

PHPz
PHPzOriginal
2023-05-19 10:06:381443Durchsuche

Es ist eine sehr häufige Sache, in PHP festzustellen, ob zwei Arrays die gleichen Elemente haben, da es für uns in der tatsächlichen Entwicklung schwierig ist, den Vergleich von Arrays zu vermeiden. Es gibt verschiedene Möglichkeiten, um festzustellen, ob zwei Arrays dieselben Elemente enthalten.

Methode 1: Verwenden Sie die Funktion array_intersect

Die Funktion array_intersect ist eine Funktion, die mit PHP geliefert wird und verwendet wird, um die Schnittmenge von zwei oder mehr Arrays zu ermitteln. Sein Rückgabewert ist ein Array, das alle gleichen Elemente in zwei oder mehr Arrays enthält.

Mit dieser Funktion können wir feststellen, ob zwei Arrays die gleichen Elemente haben. Dazu werden zwei Arrays an die Funktion array_intersect übergeben und geprüft, ob das zurückgegebene Array leer ist. Wenn es nicht leer ist, bedeutet dies, dass in den beiden Arrays dieselben Elemente vorhanden sind. Wenn es leer ist, bedeutet dies, dass in den beiden Arrays keine gleichen Elemente vorhanden sind.

Das Folgende ist ein Codebeispiel, das die Funktion array_intersect verwendet, um zu bestimmen, ob zwei Arrays dieselben Elemente haben:

$array1 = array('a', 'b', 'c');
$array2 = array('b', 'd', 'e');
$intersect = array_intersect($array1, $array2);
if (!empty($intersect)) {
    echo '两个数组有相同的元素';
} else {
    echo '两个数组没有相同的元素';
}

Erklären Sie den laufenden Prozess des obigen Codes: Zuerst erstellen wir zwei Arrays $array1 und $array2, die unterschiedliche Elemente enthalten . . Anschließend verwenden wir die Funktion array_intersect, um den Schnittpunkt dieser beiden Arrays zu ermitteln und das Ergebnis in der Variablen $intersect zu speichern. Schließlich ermitteln wir, ob die beiden Arrays die gleichen Elemente haben, indem wir prüfen, ob $intersect leer ist.

Methode 2: Verwenden Sie die Funktion array_diff

Der Funktion array_intersect entspricht die Funktion array_diff, mit der die Differenzmenge von zwei oder mehr Arrays ermittelt wird. Insbesondere gibt die Funktion array_diff Elemente zurück, die im ersten Array vorhanden sind, jedoch nicht in allen anderen Arrays.

Wir können die Funktionen array_diff und count verwenden, um festzustellen, ob zwei Arrays dieselben Elemente haben. Dazu werden zwei Arrays an die Funktion array_diff übergeben und mithilfe der Funktion count die Länge des zurückgegebenen Arrays berechnet. Wenn sich die Länge des zurückgegebenen Arrays von der Länge des ersten Arrays unterscheidet, bedeutet dies, dass in den beiden Arrays dieselben Elemente vorhanden sind. Wenn sie gleich sind, bedeutet dies, dass in den beiden Arrays keine identischen Elemente vorhanden sind.

Das Folgende ist ein Codebeispiel, das die Funktion array_diff und die Funktion count verwendet, um zu bestimmen, ob zwei Arrays dieselben Elemente haben:

$array1 = array('a', 'b', 'c');
$array2 = array('b', 'd', 'e');
$difference = array_diff($array1, $array2);
if (count($difference) < count($array1)) {
    echo '两个数组有相同的元素';
} else {
    echo '两个数组没有相同的元素';
}

Erklären Sie den laufenden Prozess des obigen Codes: Zuerst erstellen wir zwei Arrays $array1 und $array2, die enthalten verschiedene Elemente. Anschließend verwenden wir die Funktion array_diff, um die Differenz zwischen $array1 und $array2 zu ermitteln und das Ergebnis in der Variablen $difference zu speichern. Schließlich bestimmen wir, ob die beiden Arrays die gleichen Elemente haben, indem wir feststellen, ob die Länge des $difference-Arrays kleiner als die Länge des $array1-Arrays ist.

Methode 3: Schleifenbeurteilung verwenden

Zusätzlich zur Verwendung der PHP-eigenen Funktionen können wir auch Schleifen verwenden, um zu beurteilen, ob zwei Arrays dieselben Elemente haben. Die spezifische Methode besteht darin, alle Elemente in einem der Arrays zu durchlaufen und im anderen Array nach denselben Elementen zu suchen. Wenn dasselbe Element gefunden wird, bedeutet dies, dass in den beiden Arrays identische Elemente vorhanden sind. Wenn dasselbe Element nicht gefunden wird, bedeutet dies, dass in den beiden Arrays keine identischen Elemente vorhanden sind.

Das Folgende ist ein Codebeispiel, das mithilfe einer Schleife ermittelt, ob zwei Arrays dieselben Elemente haben:

$array1 = array('a', 'b', 'c');
$array2 = array('b', 'd', 'e');
$hasSameElement = false;
foreach ($array1 as $value) {
    if (in_array($value, $array2)) {
        $hasSameElement = true;
        break;
    }
}
if ($hasSameElement) {
    echo '两个数组有相同的元素';
} else {
    echo '两个数组没有相同的元素';
}

Erklären Sie, wie der obige Code ausgeführt wird: Zuerst erstellen wir zwei Arrays $array1 und $array2, die unterschiedliche Elemente enthalten. Anschließend verwenden wir eine foreach-Schleife, um alle Elemente im Array $array1 zu durchlaufen, während wir mit der Funktion in_array nach demselben Element im Array $array2 suchen. Wenn dasselbe Element gefunden wird, bedeutet dies, dass in den beiden Arrays dieselben Elemente vorhanden sind. Wenn dasselbe Element nicht gefunden wird, wird der Durchlauf fortgesetzt. Schließlich werten wir den Wert der Variablen $hasSameElement aus, um festzustellen, ob die beiden Arrays dieselben Elemente haben.

Zusammenfassend haben wir drei Methoden eingeführt, um zu bestimmen, ob zwei Arrays dieselben Elemente haben: Verwendung der Funktion array_intersect, Verwendung der Funktion array_diff und count und Verwendung der Schleifenbeurteilung. Basierend auf den tatsächlichen Anforderungen und der Datengröße können wir eine für uns geeignete Methode zur Implementierung des Array-Vergleichs auswählen.

Das obige ist der detaillierte Inhalt vonPHP ermittelt, ob zwei Arrays die gleichen Elemente haben. 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