Aktueller Standort: Startseite> Neueste Artikel> array_diff_ukey () vs array_diff (): Wann verwendet zu welchem?

array_diff_ukey () vs array_diff (): Wann verwendet zu welchem?

M66 2025-05-15

In PHP werden Array_Diff () und Array_Diff_Ukey () beide zum Vergleich von Arrays verwendet, aber sie haben offensichtliche Unterschiede in ihren Arbeitsprinzipien und -nutzungsszenarien. In diesem Artikel werden die Unterschiede zwischen diesen beiden Funktionen im Detail erörtert und deren Nutzungsszenarien analysiert.

1. Array_diff () Funktion

Die Funktion array_diff () wird verwendet, um die Werte von zwei oder mehr Arrays zu vergleichen und Elemente zurückzugeben, die im ersten Array vorhanden sind, jedoch nicht in anderen Arrays. Diese Funktion wird basierend auf dem Wert verglichen, unabhängig vom Schlüsselnamen.

Grammatik:
 array_diff(array $array1, array $array2, array ...$arrays): array
Beispiel:
 $array1 = ["apple" => "green", "banana" => "yellow", "cherry" => "red"];
$array2 = ["banana" => "yellow", "cherry" => "blue", "grape" => "purple"];

$result = array_diff($array1, $array2);
print_r($result);
Ausgabe:
 Array
(
    [apple] => green
)

In diesem Beispiel gibt Array_Diff () ein Element zurück, das im Array $ arrray1, jedoch nicht in $ array2 , vorhanden ist. Beachten Sie, dass Array_Diff () nur Werte vergleicht und keine Schlüssel verglichen.

2. array_diff_ukey () Funktion

Im Gegensatz zu Array_Diff () wird die Funktion array_diff_ukey () basierend auf den Schlüsselnamen des Arrays verglichen. Es wird vergleicht, ob der Schlüssel im ersten Array in anderen Arrays vorhanden ist, und schließt das Element nur aus dem Ergebnis aus, wenn die Schlüsselnamen nicht übereinstimmen.

Grammatik:
 array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
Beispiel:
 $array1 = ["apple" => "green", "banana" => "yellow", "cherry" => "red"];
$array2 = ["banana" => "yellow", "cherry" => "blue", "grape" => "purple"];

$result = array_diff_ukey($array1, $array2, "key_compare");
print_r($result);

function key_compare($key1, $key2) {
    return $key1 === $key2 ? 0 : -1;
}
Ausgabe:
 Array
(
    [apple] => green
)

In diesem Beispiel wird array_diff_ukey () mit dem Schlüsselnamen verglichen, wodurch der Schlüssel "Apple" in $ array1 zurückgibt, da es in $ array2 nicht existiert.

3. Zusammenfassung des Unterschieds

  • array_diff () : Vergleichen Sie die Werte des Arrays und ignorieren Sie die Schlüsselnamen. Anwendbar auf Wenn Sie sich nur darum kümmern, ob der Wert in anderen Arrays vorhanden ist.

  • array_diff_ukey () : Vergleichen Sie die Schlüsselnamen des Arrays und ignorieren Sie den Wert. Es funktioniert, wenn Sie sich um die Existenz des Schlüsselnamens kümmern, nicht ob die Werte gleich sind.

4. Wann verwenden Sie Array_Diff () oder Array_Diff_Ukey () ?

  • Verwenden Sie Array_Diff () : Wenn Sie die Werte eines Arrays vergleichen müssen, ist mit Array_Diff () eine geeignetere Wahl. Sie können diese Funktion beispielsweise verwenden, wenn Sie eindeutige Werte in einem Array finden möchten.

  • Verwenden Sie Array_Diff_Ukey () : Wenn Sie die Schlüsselnamen eines Arrays vergleichen müssen, ist es angemessener, Array_Diff_Ukey () zu verwenden. Es kann Ihnen helfen, bestimmte Schlüssel herauszufiltern, die sich nicht um den Inhalt des Werts kümmern. Wenn Sie beispielsweise ein assoziatives Array haben und sich nur darum kümmern, ob bestimmte bestimmte Schlüssel in anderen Arrays vorhanden sind, können Sie diese Funktion verwenden.

Zusammenfassen

Der Hauptunterschied zwischen array_diff () und array_diff_ukey () besteht darin, dass sie verschiedene Objekte vergleichen: Der erstere wird basierend auf dem Wert des Arrays verglichen, während der letztere basierend auf dem Schlüsselnamen des Arrays verglichen wird. Abhängig von Ihren tatsächlichen Anforderungen kann die Auswahl der richtigen Funktion helfen, Arrays effizienter zu verarbeiten.