Aktueller Standort: Startseite> Neueste Artikel> Was ist der Unterschied zwischen array_diff_key () und array_diff ()?

Was ist der Unterschied zwischen array_diff_key () und array_diff ()?

M66 2025-05-12

Array_diff_key () wird verwendet, um Tasten von zwei oder mehr Arrays zu vergleichen. Es gibt ein Array zurück, das Schlüsselwertpaare enthält, die im ersten Array vorhanden sind, jedoch nicht in den anderen Arrays.

Funktionsprototyp:

 array_diff_key(array $array1, array $array2, array ...$arrays): array

Parameterbeschreibung:

  • $ array1 : Das erste Array, das verglichen wird.

  • $ array2 : Das zweite Array zu vergleichen.

  • $ arrays (optional): Weitere Arrays zum Vergleich.

Rückgabewert: Gibt eine Reihe von Schlüsselwertpaaren zurück, die in $ array1 enthalten sind, jedoch nicht in anderen Arrays.

Beispiel:

 $array1 = [
    'a' => 1,
    'b' => 2,
    'c' => 3,
];

$array2 = [
    'a' => 1,
    'c' => 3,
    'd' => 4,
];

$result = array_diff_key($array1, $array2);
print_r($result);

Ausgabe:

 Array
(
    [b] => 2
)

Erläuterung: In diesem Beispiel vergleicht Array_diff_key () die Schlüssel in $ array1 und $ array2 . Nur der Schlüssel 'B' existiert in $ array1 , jedoch nicht in $ array2 , daher ist das Rückgabeergebnis ein Array, das nur den Schlüssel 'B' enthält.

Einführung in Array_Diff ()

Array_Diff () wird verwendet, um die Werte eines Arrays zu vergleichen. Es gibt ein Array zurück, das Werte enthält, die im ersten Array vorhanden sind, aber nicht in anderen Arrays angezeigt werden.

Funktionsprototyp:

 array_diff(array $array1, array $array2, array ...$arrays): array

Parameterbeschreibung:

  • $ array1 : Das erste Array, das verglichen wird.

  • $ array2 : Das zweite Array zu vergleichen.

  • $ arrays (optional): Weitere Arrays zum Vergleich.

Rückgabewert: Gibt ein Array von Werten zurück, die in $ Array1 enthalten sind, jedoch nicht in anderen Arrays.

Beispiel:

 $array1 = [1, 2, 3];
$array2 = [2, 3, 4];

$result = array_diff($array1, $array2);
print_r($result);

Ausgabe:

 Array
(
    [0] => 1
)

Erläuterung: In diesem Beispiel vergleicht Array_Diff () die Werte in $ array1 und $ array2 . Der Wert 1 existiert in $ array1 , ist jedoch nicht in $ array2 , so dass ein Array mit 1 zurückgegeben wird.

Die Hauptunterschiede zwischen array_diff_key () und array_diff ()

  1. Die verglichenen Objekte sind unterschiedlich:

    • Array_diff_key () vergleicht die Schlüssel eines Arrays, dh nur darauf achten, ob die Schlüssel des Arrays in anderen Arrays existieren.

    • Array_Diff () vergleicht den Wert des Arrays, dh nur darauf aufmerksam, ob der Wert des Arrays in anderen Arrays existiert.

  2. Verschiedene Nutzungsszenarien:

    • array_diff_key () ist für Fälle geeignet, in denen Arrays durch Schlüssel gefiltert werden müssen. Zum Beispiel möchten Sie möglicherweise einen Schlüssel finden, der für ein Array einzigartig ist.

    • Array_Diff () ist für Fälle geeignet, in denen Arrays basierend auf Werten gefiltert werden müssen. Zum Beispiel möchten Sie möglicherweise Elemente finden, die für ein Array einzigartig sind.

  3. Die zurückgegebenen Ergebnisse sind unterschiedlich:

    • Array_diff_key () gibt ein Array mit eindeutigen Schlüssel zurück, und das Array im Ergebnis behält die Schlüssel des ursprünglichen Arrays bei.

    • Array_diff () gibt ein Array zurück, das eindeutige Werte enthält, und die Schlüssel des Arrays im Ergebnis werden neu integriert.

Wie wählen Sie?

Die Verwendung von Array_Diff_key () oder Array_Diff () hängt hauptsächlich davon ab, ob Sie basierend auf Schlüssel oder Wert vergleichen möchten:

  • Verwenden Sie Array_Diff_key () : Wenn Sie sich nur um die Schlüssel des Array kümmern, verwenden Sie Array_Diff_key (), um die Schlüssel zu vergleichen.

    • Zum Beispiel: Sie haben eine Reihe von Benutzerinformationen und müssen nach Feldern (Schlüssel) suchen, die in diesem Array vorhanden sind, aber in anderen Arrays nicht existieren.

  • Verwenden Sie Array_Diff () : Wenn Sie sich nur um die Werte des Arrays kümmern, verwenden Sie Array_Diff (), um Werte zu vergleichen.

    • Zum Beispiel: Sie haben ein Bestellarray und müssen Artikel finden, die darin bestehen, aber nicht in anderen Bestellungen enthalten sind.

Zusammenfassen

  • Array_diff_key () vergleicht Schlüssel, die für die Filterung von Tasten geeignet sind.

  • Array_Diff () vergleicht die Werte und eignet sich zum Filterungsarrays basierend auf Werten.

  • Durch die Auswahl der richtigen Funktion gemäß dem spezifischen Szenario können Sie Array -Daten effizienter verarbeiten.