Heim >Backend-Entwicklung >PHP-Tutorial >Der beste Weg, Arrays zu deduplizieren und Schlüsselnamen in PHP beizubehalten
Es gibt zwei beste Möglichkeiten, Arrays zu deduplizieren und Schlüsselnamen in PHP beizubehalten: array_unique(): Es kann Schlüsselnamen deduplizieren, aber nicht beibehalten und das Array neu indizieren. Benutzerdefinierte Funktion array_unique_preserve_keys(): Verwenden Sie Hashwerte, um Werte zu vergleichen, wodurch Duplikate entfernt und Schlüsselnamen beibehalten werden können.
Der beste Weg, Arrays zu deduplizieren und dabei die Schlüsselnamen in PHP beizubehalten
In PHP bedeutet Array-Deduplizierung das Entfernen doppelter Werte, während die Schlüsselnamen unverändert bleiben. Dies ist nützlich, wenn Sie mit Daten aus verschiedenen Quellen arbeiten, die möglicherweise doppelte Elemente enthalten, z. B. aus mehreren Formularübermittlungen oder Datenbankabfragen.
Methode 1: array_unique()
Die Funktion array_unique() ist eine integrierte PHP-Funktion zur Deduplizierung von Arrays. Es akzeptiert ein Array als Eingabe und gibt ein neues Array zurück, in dem doppelte Werte entfernt wurden. array_unique() behält jedoch keine Schlüsselnamen bei, sondern indiziert das Array neu, beginnend bei 0.
Beispiel:
$arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a']; $result = array_unique($arr); print_r($result); // 输出:['a', 'b', 'c', 'd', 'e']
Methode 2: Benutzerdefinierte Funktion
Um die Schlüsselnamen beizubehalten, können wir eine benutzerdefinierte Funktion schreiben, um das Array zu deduplizieren. Diese Methode verwendet ein assoziatives Array und vergleicht den Hash jedes Werts, um festzustellen, ob es sich um ein Duplikat handelt.
Beispiel:
function array_unique_preserve_keys($arr) { $hash = []; $unique_arr = []; foreach ($arr as $key => $value) { $hash_value = md5($value); if (!isset($hash[$hash_value])) { $hash[$hash_value] = 1; $unique_arr[$key] = $value; } } return $unique_arr; } $arr = ['a', 'b', 'c', 'c', 'd', 'e', 'a']; $result = array_unique_preserve_keys($arr); print_r($result); // 输出:['a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e']
Praktisches Beispiel:
Nehmen wir an, wir haben ein Array aus einer Formularübermittlung, das doppelte Benutzernamen und E-Mail-Adressen enthält. Durch die Deduplizierung mit der Funktion array_unique_preserve_keys() können wir doppelte Datensätze entfernen und gleichzeitig den Benutzernamen des Benutzers beibehalten.
$form_data = [ ['username' => 'john', 'email' => 'john@example.com'], ['username' => 'jane', 'email' => 'jane@example.com'], ['username' => 'john', 'email' => 'john@example.org'], ['username' => 'mark', 'email' => 'mark@example.net'] ]; $unique_users = array_unique_preserve_keys($form_data); print_r($unique_users); // 输出:['john' => ['username' => 'john', 'email' => 'john@example.com'], 'jane' => ['username' => 'jane', 'email' => 'jane@example.com'], 'mark' => ['username' => 'mark', 'email' => 'mark@example.net']]
Das obige ist der detaillierte Inhalt vonDer beste Weg, Arrays zu deduplizieren und Schlüsselnamen in PHP beizubehalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!