Heim >Backend-Entwicklung >PHP-Problem >So entfernen Sie doppelte Arrays in PHP

So entfernen Sie doppelte Arrays in PHP

PHPz
PHPzOriginal
2023-03-29 11:31:18558Durchsuche

In PHP sind Arrays ein sehr häufig verwendeter Datentyp, und manchmal müssen wir Arrays deduplizieren, um unseren Anforderungen gerecht zu werden. Wie entferne ich also doppelte Arrays in PHP?

1. PHP-Array-Deduplizierungsfunktion

PHP bietet zwei Funktionen, die zur Implementierung der Array-Deduplizierung verwendet werden können, nämlich array_unique() und array_diff_key().

  1. array_unique()-Funktion

array_unique()-Funktion kann doppelte Werte im Array entfernen und ein neues Array zurückgeben.

Beispielcode:

$arr = array("apple", "banana", "cherry", "cherry", "banana");
$arr = array_unique($arr);
print_r($arr);

Ausgabeergebnis:

Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

Es ist ersichtlich, dass die Funktion array_unique() erfolgreich doppelte Elemente im ursprünglichen Array entfernt.

  1. array_diff_key()-Funktion

array_diff_key()-Funktion kann zwei Arrays vergleichen und den Schlüsselnamen der Differenz zwischen den beiden Arrays zurückgeben.

Beispielcode:

$array1 = array("a" => "red", "b" => "green", "c" => "blue");
$array2 = array("a" => "red", "b" => "green", "d" => "yellow");

$result = array_diff_key($array1, $array2);
print_r($result);

Ausgabeergebnis:

Array
(
    [c] => blue
)

Im Beispiel filtert die Funktion array_diff_key() die Teile von $array1 heraus, die sich von $array2 unterscheiden, und gibt sie als neues Array zurück.

2. Array-Deduplizierung manuell implementieren

Zusätzlich zur Verwendung von PHP-Funktionen können wir die Array-Deduplizierung auch manuell implementieren.

  1. Methode 1

Verwenden Sie die for-Schleife und die if-Anweisung, um das Array zu durchlaufen, doppelte Elemente zu identifizieren und sie zu entfernen.

Beispielcode:

$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array();

for ($i = 0; $i < count($arr); $i++) {
    if (!in_array($arr[$i], $new_arr)) {
        $new_arr[] = $arr[$i];
    }
}

print_r($new_arr);

Ausgabeergebnis:

Array
(
    [0] => 1
    [1] => 2
    [2] => 5
    [3] => 6
    [4] => 7
    [5] => 8
    [6] => 9
)

in_array()-Funktion ermittelt, ob die Elemente im ursprünglichen Array bereits im neuen Array vorhanden sind, und wenn nicht, fügt sie dem neuen Array hinzu.

  1. Methode 2

Verwenden Sie die Funktion array_flip(), um das Array umzudrehen, entfernen Sie doppelte Schlüssel-Wert-Paare und verwenden Sie die Funktion array_flip(), um das Array umzudrehen.

Beispielcode:

$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);
$new_arr = array_flip(array_flip($arr));

print_r($new_arr);

Ausgabeergebnis:

Array
(
    [0] => 1
    [1] => 2
    [2] => 5
    [3] => 6
    [4] => 7
    [5] => 8
    [6] => 9
)

Diese Methode benötigt keine Schleife, verwenden Sie einfach die Funktion array_flip() zweimal.

3. Zusammenfassung

Die oben genannten Methoden zum Entfernen doppelter Arrays können je nach Situation ausgewählt werden. Die Funktionen array_unique() und array_diff_key() sind PHP-eigene Funktionen und weisen eine relativ hohe Effizienz auf. Obwohl die manuelle Implementierung viel Code erfordert, kann sie flexibel an die tatsächliche Situation angepasst und optimiert werden.

Das obige ist der detaillierte Inhalt vonSo entfernen Sie doppelte 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