Während des Entwicklungsprozesses stoßen wir häufig auf Situationen, in denen wir zwei oder mehr Arrays vergleichen müssen, insbesondere ein bestimmtes Array. PHP bietet eine sehr praktische integrierte Funktion - array_diff () , die diese Aufgabe problemlos ausführen kann.
array_diff () ist eine Funktion in PHP, um Array -Unterschiede zu vergleichen. Es gibt ein Array zurück, das Elemente enthält, die nur im ersten Array erscheinen , und gibt keinen Wert zurück, der im nachfolgenden Array vorhanden ist.
array array_diff(array $array1, array ...$arrays)
$ array1 ist das Hauptarray, das Sie vergleichen möchten.
$ arrays ist ein oder mehrere Arrays, die Sie mit dem Hauptarray vergleichen möchten.
Angenommen, wir zeichnen die ursprünglichen Interessen des Benutzers und die vom Benutzer eingereichten neuen Interessen auf und möchten wissen, welche neu sind.
<?php
$originalInterests = ['Musik', 'Film', 'Reise'];
$newInterests = ['Musik', 'Film', 'Reise', 'Fotografie', 'lesen'];
$addedInterests = array_diff($newInterests, $originalInterests);
print_r($addedInterests);
?>
Ausgabe:
Array
(
[3] => Fotografie
[4] => lesen
)
Wie Sie sehen können, gibt Array_Diff () Elemente zurück, die nur in $ New Interests erscheinen, was das neue Interesse des Benutzers ist.
Angenommen, Sie möchten die URLs herausfiltern, die der Benutzer übermittelt hat, und hinterlassen nur neue, wenn Sie eine Liste der von einem Benutzer übermittelten Websites verarbeiten.
<?php
$existingUrls = [
'https://m66.net/article/123',
'https://m66.net/blog/2024',
];
$submittedUrls = [
'https://m66.net/article/123',
'https://m66.net/tools/checker',
'https://m66.net/blog/2024',
'https://m66.net/contact',
];
$newUrls = array_diff($submittedUrls, $existingUrls);
print_r($newUrls);
?>
Ausgabe:
Array
(
[1] => https://m66.net/tools/checker
[3] => https://m66.net/contact
)
Die Ergebnisse zeigen, dass die beiden vom Benutzer eingereichten URLs neu sind und nicht in der ursprünglichen Liste angezeigt wurden.
Array_Diff () wird nach Werten verglichen und verwendet den Nichtstreifenmodus (nicht verglichen Datentypen), wie z. B. '1' und 1 ' als gleich.
Wenn Sie einen strengen Vergleich verwenden müssen (dh, müssen Sie Datentypen vergleichen), können Sie array_diff_assoc () oder array_diff_key () verwenden.
Das Rückgabeergebnis hält den Schlüsselnamen im ursprünglichen Array. Wenn Sie den Schlüsselnamen nicht benötigen, können Sie mit Array_Values () wieder indeminieren.
$cleanList = array_values(array_diff($newUrls, $existingUrls));
array_diff () ist ein sehr leistungsstarkes Tool, das für Datenfilterung, Protokollvergleich, Benutzerverhaltensanalyse und andere Szenarien geeignet ist. Solange Sie verstehen, wie es funktioniert, kann eine Menge Array -Verarbeitungslogik einfach und effizient werden.
Ich hoffe, dieser Artikel hilft Ihnen, Array_Diff () besser zu verstehen und zu verwenden! Wenn Sie auf ähnliche Probleme in der Entwicklung stoßen, können Sie diese Funktion genauso gut versuchen, die Ihnen möglicherweise viel Code sparen.