Aktueller Standort: Startseite> Neueste Artikel> Leistungsvergleich: array_diff () vs array_diff_assoc ()

Leistungsvergleich: array_diff () vs array_diff_assoc ()

M66 2025-05-13

In PHP sind Array_Diff () und Array_Diff_assoc () zwei häufig verwendete Array -Vergleichsfunktionen. Sie werden oft verwendet, um die Unterschiede zwischen zwei Arrays zu finden, verhalten sich jedoch unterschiedlich. In diesem Artikel werden die Unterschiede zwischen den beiden Funktionen und ihren Leistungsunterschieden ausführlich erörtert.

1. Wie Array_Diff () funktioniert

Die Funktion array_diff () wird verwendet, um zwei Arrays zu vergleichen und alle Elemente im ersten Array zurückzugeben, die sich nicht im zweiten Array befinden. Es vergleicht die Werte von zwei Arrays und ignoriert die Schlüssel des Arrays.

Grammatik:

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

Beispiel:

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

$result = array_diff($array1, $array2);
print_r($result);  // Ausgabe: [0 => 1, 3 => 4]

In diesem Beispiel vergleicht Array_diff () die Werte von $ array1 und $ array2 und gibt Elemente in $ array1 zurück, die nicht in $ array2 sind.

2. Wie array_diff_assoc () funktioniert

Die Funktion array_diff_assoc () wird auch zum Vergleich von zwei Arrays verwendet, aber im Gegensatz zu Array_Diff () vergleicht sie nicht nur Werte, sondern auch Schlüsseldamen. Daher werden nur Elemente, die keine Werte und Schlüssel übereinstimmen, als unterschiedlich angesehen.

Grammatik:

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

Beispiel:

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

$result = array_diff_assoc($array1, $array2);
print_r($result);  // Ausgabe: [3 => 'c']

In diesem Beispiel vergleicht Array_diff_assoc () die Schlüssel und Werte von $ array1 und $ array2 . Es wird berücksichtigt, dass Element C mit Key 3 im zweiten Array nicht existiert, so dass es dieses Element zurückgibt.

3. Leistungsvergleich: array_diff () und array_diff_assoc ()

array_diff () und array_diff_assoc () sind beide Funktionen, mit denen Array -Unterschiede ermittelt werden. Aufgrund ihrer unterschiedlichen Arbeitsprinzipien unterscheiden sie sich jedoch auch in der Leistung.

  • Array_Diff () vergleicht nur Werte, was es normalerweise beim Betrieb effizienter macht, insbesondere wenn Arrays groß sind, da der Vergleichsprozess nur Werte beinhaltet und keine Überprüfung der Tasten erfordert.

  • array_diff_assoc () muss nicht nur Werte, sondern auch Schlüssel vergleichen, sondern auch beim Vergleich mehr, was dazu führen kann, dass es etwas schlechter wird, insbesondere wenn es in großen Arrays verwendet wird.

4. Welches ist effizienter?

Wenn Sie sich nur um die Werte des Arrays kümmern und sich nicht für die Unterschiede in den Schlüssel interessieren, ist es effizienter, wenn Sie Array_Diff () verwenden. Wenn Sie sowohl Schlüssel- als auch Wertunterschiede berücksichtigen müssen, ist Array_Diff_assoc () unerlässlich, aber es wird einen höheren Leistungsaufwand haben.

5. Zusammenfassung

  • Der Vergleich von Werten unter Verwendung von Array_Diff () ist effizienter und für Fälle geeignet, in denen nur Array -Werte berücksichtigt werden müssen.

  • Die Verwendung von Array_Diff_assoc () zum Vergleich von Schlüssel und Werten ist präziser, ist jedoch geringfügig minderwertig und eignet sich für Szenarien, in denen sowohl Schlüssel als auch Werte übereinstimmen müssen.

Wenn Sie sich nur um den Unterschied der Werte in Ihrer Anwendung kümmern, bringt die Auswahl von Array_Diff () eine bessere Leistung. Wenn sowohl Schlüssel als auch Werte streng übereinstimmen müssen, ist Array_diff_assoc () eine geeignetere Wahl.