Wie kann ich mehrere PHP-Arrays zusammenführen und gleichzeitig doppelte Werte entfernen?

Barbara Streisand
Freigeben: 2024-11-13 00:16:01
Original
658 Leute haben es durchsucht

How can I merge multiple PHP arrays while removing duplicate values?

Arrays in PHP zusammenführen und deduplizieren

Bei der Arbeit mit PHP-Arrays ist es oft notwendig, mehrere Arrays zu einem einzigen Array zusammenzuführen. Es ist jedoch wichtig, doppelte Werte im endgültigen Array zu vermeiden.

Zwei Arrays zusammenführen

Um zwei Arrays zusammenzuführen, können Sie die Funktion array_merge() verwenden:

$array1 = [
    (object) [
        'ID' => 749,
        'post_author' => 1,
        'post_date' => '2012-11-20 06:26:07',
        'post_date_gmt' => '2012-11-20 06:26:07'
    ]
];

$array2 = [
    (object) [
        'ID' => 749,
        'post_author' => 1,
        'post_date' => '2012-11-20 06:26:07',
        'post_date_gmt' => '2012-11-20 06:26:07'
    ]
];

$mergedArray = array_merge($array1, $array2);
Nach dem Login kopieren

Das $mergedArray enthält beide Elemente von $array1 und $array2. Es enthält jedoch auch das Duplikatobjekt von $array2, was möglicherweise unerwünscht ist.

Duplikate entfernen

Um Duplikate zu entfernen, können Sie array_unique() verwenden Funktion. Diese Funktion verwendet ein Array als Argument und gibt ein neues Array zurück, bei dem doppelte Werte entfernt wurden. Sie können array_merge() und array_unique() kombinieren, um Arrays zusammenzuführen und Duplikate zu entfernen:

$mergedAndUniquedArray = 
array_unique(array_merge($array1, $array2), SORT_REGULAR);
Nach dem Login kopieren

Das Flag SORT_REGULAR stellt sicher, dass das Array nach den Werten seiner Elemente sortiert wird, bevor Duplikate entfernt werden. Dies kann wichtig sein, wenn Sie beim Zusammenführen die Reihenfolge der ursprünglichen Arrays beibehalten möchten.

Sie können auch eine Kombination aus array_map() und spl_object_hash() verwenden, um doppelte Objekte aus Arrays zu entfernen:

$removeDuplicatesUsingObjects = function ($object) {
    return spl_object_hash($object);
};

$mergedAndUniquedArray = array_map($removeDuplicatesUsingObjects, 
array_merge($array1, $array2));
$mergedAndUniquedArray = array_unique($mergedAndUniquedArray);
Nach dem Login kopieren

Diese Methode verwendet die Funktion spl_object_hash(), um für jedes Objekt einen eindeutigen Bezeichner zu generieren, und entfernt dann Duplikate basierend auf diesen Bezeichnern.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere PHP-Arrays zusammenführen und gleichzeitig doppelte Werte entfernen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage