Heim > Backend-Entwicklung > PHP-Problem > Löschen Sie dieselben Elemente in zwei Arrays in PHP

Löschen Sie dieselben Elemente in zwei Arrays in PHP

王林
Freigeben: 2023-05-19 19:29:36
Original
621 Leute haben es durchsucht

PHP ist eine beliebte serverseitige Entwicklungssprache, die verschiedene Datenverarbeitungs- und Verwaltungstechnologien unterstützt. Darunter sind Arrays ein wichtiger Bestandteil der PHP-Programmierung und können verschiedene komplexe Datenstrukturen und Elementsammlungen darstellen. Angenommen, wir haben zwei Arrays A und B, die mehrere Elemente enthalten, und wir möchten eine Funktion implementieren: Löschen Sie dieselben Elemente in A und B, das heißt, behalten Sie nur die Elemente bei, die in A oder B erscheinen, aber nicht in beiden. Im Folgenden stellen wir vor, wie Sie PHP verwenden, um diese Funktion zu erreichen.

1. Array-Grundlagen

In PHP ist ein Array eine geordnete Datenstruktur, die mehrere Werte oder Schlüssel-Wert-Paare speichern kann. Jedes Element wird durch einen eindeutigen Index identifiziert. Zu den üblichen Operationen an Arrays gehören das Hinzufügen, Löschen, Durchlaufen und Sortieren. Im Folgenden sind einige häufig verwendete Array-Funktionen aufgeführt:

array(): Definieren Sie eine Array-Variable;
• array_push(): Fügen Sie ein oder mehrere Elemente am Ende des Arrays hinzu;
• array_pop(): Entfernen Sie ein Element aus dem Ende des Arrays;
• array_shift(): Ein Element aus dem Kopf des Arrays entfernen;
• array_unshift(): Ein oder mehrere Elemente zum Kopf des Arrays hinzufügen;
• array_slice(): Eine Untersammlung extrahieren aus dem Array;
• array_merge(): Zwei oder mehr Arrays zusammenführen
• array_splice(): Elemente aus einem Array entfernen oder einfügen.

2. Array-Deduplizierung

Bevor wir die Funktion zum Löschen derselben Elemente implementieren, müssen wir überlegen, wie doppelte Elemente im Array entfernt werden. PHP bietet eine integrierte Funktion array_unique(), die Deduplizierungsvorgänge implementieren kann. Die Syntax dieser Funktion lautet wie folgt:

array_unique(array $array [, int $sort_flags = SORT_STRING]): array

Unter diesen stellt der Parameter $array die zu duplizierende Array-Variable und der Parameter $sort_flags dar die Sortiermethode. Wenn mehrere identische Werte vorhanden sind, wird nach der Deduplizierung nur der erste Wert beibehalten und die Position des beibehaltenen Werts bleibt unverändert. Das Folgende ist ein Beispiel:

$a = array(1, 2, 3, 2, 4, 3);
$b = array_unique($a); // $b = [1, 2, 3, 4]
Nach dem Login kopieren

3. Dieselben Elemente löschen

Da wir nun wissen, wie man ein Array dedupliziert, zeigen wir anhand eines Beispiels, wie man dieselben Elemente löscht. Angenommen, wir haben zwei Arrays A und B, deren Elemente vom gleichen Typ sind und eine unbestimmte Anzahl doppelter Elemente aufweisen. Wir möchten eine Funktion diff() implementieren, die zwei Arrays als Parameter verwendet und ein Array zurückgibt, das Elemente enthält, die nur in einem Array vorhanden sind, d. h. die gleichen Elemente in A und B entfernen.

Methode 1: Verwenden Sie die Funktion array_diff()

PHP stellt die Funktion array_diff() zur Verfügung, die die Differenz zwischen zwei oder mehr Arrays zurückgeben kann. Die Syntax dieser Funktion lautet wie folgt:

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

Das von dieser Funktion zurückgegebene Array enthält alle Elemente, die in $array1, aber nicht in sind $array2. Wenn mehrere Arrays angegeben werden, enthält das zurückgegebene Array Elemente, die sich in keinem der folgenden Arrays befinden. Hier ist ein Beispiel:

$a = array(1, 2, 3, 4, 5);
$b = array(4, 5, 6, 7);
$result = array_diff($a, $b); // $result = [1, 2, 3]
Nach dem Login kopieren

Wir können das Ergebnis dieser Funktion auf A und B anwenden, um Elemente zu erhalten, die nur in einem Array vorhanden sind:

function diff($a, $b) {
    $unique_a = array_unique($a);
    $unique_b = array_unique($b);
    $diff_a = array_diff($unique_a, $unique_b);
    $diff_b = array_diff($unique_b, $unique_a);
    return array_merge($diff_a, $diff_b);
}

$a = array(1, 2, 3, 2, 4, 3);
$b = array(2, 4, 5, 3);
$result = diff($a, $b); // $result = [1, 5]
Nach dem Login kopieren

Daraus können wir zunächst die Funktion array_diff() verwenden, um zwei zu erhalten. Die Differenz Menge der Arrays, und dann können die Unterschiede kombiniert werden.

Methode 2: Foreach-Schleife verwenden

Zusätzlich zur Verwendung integrierter Funktionen können wir dieselben Elemente auch löschen, indem wir zwei Arrays durchlaufen. Konkret können wir zunächst zwei Arrays deduplizieren, dann über eines der Arrays iterieren und für jedes darin enthaltene Element, wenn sich das Element nicht im anderen Array befindet, das Element zum resultierenden Array hinzufügen. Hier ist ein Beispiel:

function diff($a, $b) {
    $unique_a = array_unique($a);
    $unique_b = array_unique($b);
    $result = array();
    foreach ($unique_a as $x) {
        if (!in_array($x, $unique_b)) {
            $result[] = $x;
        }
    }
    foreach ($unique_b as $y) {
        if (!in_array($y, $unique_a)) {
            $result[] = $y;
        }
    }
    return $result;
}

$a = array(1, 2, 3, 2, 4, 3);
$b = array(2, 4, 5, 3);
$result = diff($a, $b); // $result = [1, 5]
Nach dem Login kopieren

Von hier aus können wir die foreach-Schleife verwenden, um das Array zu durchlaufen und für jedes Element mit der Funktion in_array() prüfen, ob das Element in einem anderen Array vorhanden ist, und wenn nicht, dann zum Ergebnis die Mitte des Arrays hinzufügen.

4. Zusammenfassung

PHP ist eine leistungsstarke Programmiersprache, deren wichtiger Bestandteil Arrays sind. In diesem Artikel wird erläutert, wie Sie mit PHP dieselben Elemente aus zwei Arrays löschen, einschließlich der Verwendung integrierter Funktionen und des Durchlaufens von Arrays. Wir können je nach tatsächlichem Bedarf verschiedene Methoden wählen, um die besten Ergebnisse zu erzielen. Ich hoffe, dass dieser Artikel den Lesern hilft, die grundlegende Verwendung von PHP-Arrays zu verstehen.

Das obige ist der detaillierte Inhalt vonLöschen Sie dieselben Elemente in zwei Arrays in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage