Heim >Backend-Entwicklung >PHP-Tutorial >So verwenden Sie die Funktion array_unique, um doppelte Arrays in PHP zu entfernen

So verwenden Sie die Funktion array_unique, um doppelte Arrays in PHP zu entfernen

王林
王林Original
2023-06-26 12:52:40796Durchsuche

In der PHP-Sprache ist Array eine sehr häufige Datenstruktur. Während des Entwicklungsprozesses stoßen wir jedoch häufig auf Szenarien, die eine Deduplizierung von Arrays erfordern. Zu diesem Zeitpunkt kann die in PHP bereitgestellte Funktion array_unique nützlich sein. Die Funktion „array_unique“ ist eine Funktion zum Entfernen doppelter Werte aus einem Array. Die Verwendung ist sehr einfach: Es kann ein Array als Parameter akzeptieren und dann ein dedupliziertes Array zurückgeben.

Lassen Sie uns nun die Verwendung der Funktion array_unique im Detail vorstellen:

Grundlegende Verwendung
  1. Die grundlegendste Verwendung besteht darin, einfach ein Array zu übergeben, wie unten gezeigt:
$arr = array('a', 'b', 'c', 'a', 'b');
$newArr = array_unique($arr);
print_r($newArr);

Das Ausgabeergebnis ist:

Array
(
    [0] => a
    [1] => b
    [2] => c
)

As Wie Sie sehen, wurden die doppelten Werte „a“ und „b“ im ursprünglichen Array entfernt.

Mehrdimensionale Array-Deduplizierung
  1. Wenn Sie mehrdimensionale Arrays deduplizieren müssen, können Sie auch die Funktion array_unique verwenden. Beachten Sie jedoch, dass die Funktion array_unique nur eindimensionale Arrays verarbeiten kann einige Fähigkeiten im Umgang mit mehrdimensionalen Arrays einzusetzen.

Zum Beispiel muss das folgende mehrdimensionale Array dedupliziert werden:

$arr = array(
    array('a', 'b', 'c'),
    array('a', 'd', 'e'),
    array('a', 'b', 'c'),
);

Sie können den folgenden Code zum Deduplizieren verwenden:

$tempArray = array();
foreach($arr as $key=>$value){
   $tempArray[$key] = serialize($value);
}
$tempArray = array_unique($tempArray);
foreach($tempArray as $key=>$value){
   $tempArray[$key] = unserialize($value);
}
print_r($tempArray);

Das Ausgabeergebnis ist:

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

    [1] => Array
        (
            [0] => a
            [1] => d
            [2] => e
        )

)

Sie können sehen, dass die Arrays doppelt vorhanden sind entfernt wurde.

Benutzerdefinierte Vergleichsfunktion
  1. Manchmal ist eine benutzerdefinierte Vergleichsfunktion erforderlich, um komplexere Deduplizierungsanforderungen zu erfüllen. Zu diesem Zeitpunkt können Sie die Funktion array_filter verwenden, um dies zu erreichen.

Zum Beispiel kann der folgende Code eine Deduplizierung gemäß dem angegebenen Schlüsselwert erreichen:

$arr = array(
    array('name' => 'Tom', 'age' => 20),
    array('name' => 'Jack', 'age' => 22),
    array('name' => 'Tom', 'age' => 25),
);

function compare($v1, $v2){
    return $v1['name'] == $v2['name'];
}

$newArr = array();
foreach($arr as $value){
    if(! in_array($value, $newArr, true)){
        $newArr[] = $value;
    }
}

print_r($newArr);

Das Ausgabeergebnis lautet:

Array
(
    [0] => Array
        (
            [name] => Tom
            [age] => 20
        )

    [1] => Array
        (
            [name] => Jack
            [age] => 22
        )

)

Sie können sehen, dass die Duplizierung gemäß dem Wert „Name“ dedupliziert wird.

Zusammenfassung

Die Funktion array_unique in PHP ist eine sehr praktische Deduplizierungsfunktion. Sie kann einfach eindimensionale Arrays deduplizieren oder auch einige Techniken verwenden, um das Deduplizierungsproblem mehrdimensionaler Arrays zu lösen, und das ist sogar möglich angepasste Vergleichsfunktionen zur Umsetzung komplexerer Deduplizierungsanforderungen. Während des Entwicklungsprozesses kann die genaue und schnelle Deduplizierung von Arrays die Programm- und Entwicklungseffizienz verbessern. Daher müssen Entwickler die korrekte Verwendung der Funktion array_unique beherrschen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Funktion array_unique, um doppelte Arrays in PHP zu entfernen. 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