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);
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);
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);
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!