Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man ein mehrdimensionales PHP-Array basierend auf einem bestimmten Schlüssel effizient deduplizieren?
Mehrdimensionales PHP-Array: Deduplizierung basierend auf einem bestimmten Wert
Frage:
Wie können Sie bei einem mehrdimensionalen Array effizient Unterarrays entfernen, die doppelte Werte für ein bestimmtes Array enthalten? Schlüssel?
Problemstellung:
Betrachten Sie das folgende mehrdimensionale Array:
Array ( [0] => Array ( [0] => dave [1] => jones [2] => [email protected] ) [1] => Array ( [0] => john [1] => jones [2] => [email protected] ) [2] => Array ( [0] => bruce [1] => finkle [2] => [email protected] ) )
Die Aufgabe besteht darin, alle Unterarrays zu entfernen, in denen die E-Mail-Adresse (Index 2) kommt mehrfach vor. In diesem Beispiel würde dies dazu führen, dass entweder das erste oder das dritte Unterarray entfernt wird.
Lösung:
Eine einfache Lösung besteht darin, die Array-Eindeutigkeit zu verwenden, um doppelte E-Mail-Adressen zu entfernen :
$newArr = array(); foreach ($array as $val) { $newArr[$val[2]] = $val; } $array = array_values($newArr);
Diese Lösung nutzt die Tatsache, dass Array-Schlüssel in PHP eindeutig sind. Durch die Verwendung der E-Mail-Adresse als Array-Schlüssel wird sichergestellt, dass nur das letzte Vorkommen einer bestimmten E-Mail-Adresse im resultierenden Array erhalten bleibt.
Durch die Verwendung von array_values() am Ende setzen wir die Array-Indizes auf zurück fortlaufende Nummern unter Beibehaltung der deduplizierten Daten.
Hinweis:
Das obige ist der detaillierte Inhalt vonWie kann man ein mehrdimensionales PHP-Array basierend auf einem bestimmten Schlüssel effizient deduplizieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!